From 696fb5ada9b658fc5a8d998f7b0dd3cec35c563b Mon Sep 17 00:00:00 2001
From: acrovato <a.crovato@uliege.be>
Date: Fri, 26 Jun 2020 14:59:17 +0200
Subject: [PATCH] Basic setup and dummy test

---
 .editorconfig           |    8 +
 .gitignore              |   45 +
 .gitlab-ci.yml          |   49 +
 CMake/FindEIGEN.cmake   |   78 ++
 CMake/FindTBB.cmake     |  277 +++++
 CMake/fpmMacros.cmake   |   41 +
 CMakeLists.txt          |  124 ++
 Doxyfile.in             | 2487 +++++++++++++++++++++++++++++++++++++++
 LICENSE                 |  504 ++++++++
 README.md               |    9 +
 dox/img.png             |  Bin 0 -> 154189 bytes
 dox/logo.jpg            |  Bin 0 -> 10837 bytes
 fpm/CMakeLists.txt      |   23 +
 fpm/__init__.py         |    8 +
 fpm/_src/CMakeLists.txt |   44 +
 fpm/_src/fpmw.h         |   17 +
 fpm/_src/fpmw.i         |   69 ++
 fpm/_src/fpmw.swg       |   80 ++
 fpm/src/CMakeLists.txt  |   36 +
 fpm/src/fObject.cpp     |   45 +
 fpm/src/fObject.h       |   75 ++
 fpm/src/fpm.h           |   54 +
 fpm/tests/basic.py      |   32 +
 run_fpm.py              |   26 +
 24 files changed, 4131 insertions(+)
 create mode 100644 .editorconfig
 create mode 100644 .gitignore
 create mode 100644 .gitlab-ci.yml
 create mode 100644 CMake/FindEIGEN.cmake
 create mode 100644 CMake/FindTBB.cmake
 create mode 100644 CMake/fpmMacros.cmake
 create mode 100644 CMakeLists.txt
 create mode 100644 Doxyfile.in
 create mode 100644 LICENSE
 create mode 100644 dox/img.png
 create mode 100644 dox/logo.jpg
 create mode 100644 fpm/CMakeLists.txt
 create mode 100644 fpm/__init__.py
 create mode 100644 fpm/_src/CMakeLists.txt
 create mode 100644 fpm/_src/fpmw.h
 create mode 100644 fpm/_src/fpmw.i
 create mode 100644 fpm/_src/fpmw.swg
 create mode 100644 fpm/src/CMakeLists.txt
 create mode 100644 fpm/src/fObject.cpp
 create mode 100644 fpm/src/fObject.h
 create mode 100644 fpm/src/fpm.h
 create mode 100644 fpm/tests/basic.py
 create mode 100755 run_fpm.py

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..de6044b
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,8 @@
+# EditorConfig is awesome: https://EditorConfig.org
+
+root = true
+
+[*]
+charset = utf-8
+indent_style = space
+indent_size = 4
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7a82686
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,45 @@
+# Compiled Object files
+*.slo
+*.lo
+*.o
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+
+# Misc
+core
+*.pyc
+*.*~
+
+# OS
+.DS_Store
+*.swp
+*.bak
+
+# Workspace
+workspace
+workspace.tar.gz
+*.tar.gz
+*.tgz
+
+# build dir
+build
+
+# Gmsh
+*.pos
+*.msh # do not commit the mesh...
+!*_lfs.msh # ... except in the lfs
+#*.opt
+
+# IDE
+.project
+.pydevproject
+.settings
+.vscode
+.vscode/*
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..6e1c814
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,49 @@
+# gitlab-ci file for fpm
+
+default:
+    image: rboman/waves-py3:2020.1
+    before_script:
+        - source /opt/intel/mkl/bin/mklvars.sh intel64
+        - source /opt/intel/tbb/bin/tbbvars.sh intel64
+
+stages:
+    - build
+    - test
+
+build:
+    image: rboman/waves-py3:2020.1
+    stage: build
+    script:
+        - printenv | sort
+        - rm -rf build workspace
+        - mkdir build
+        - cd build
+        - cmake -Wno-dev ..
+        - make -j $(nproc)
+    artifacts:
+        paths:
+            - build/
+        expire_in: 1 hour
+            
+doxygen:
+    stage: test
+    script:
+        - cd build
+        - make dox
+    artifacts:
+        paths:
+            - build/doxygen/
+        expire_in: 1 day
+    dependencies:
+        - build
+
+ctest-py3:
+    image: rboman/waves-py3:2020.1
+    stage: test
+    script:
+        - cd build
+        - ctest -j $(nproc) --output-on-failure #--verbose
+    #timeout: 10 hours  # will be available in 12.3
+    dependencies:
+        - build
+
diff --git a/CMake/FindEIGEN.cmake b/CMake/FindEIGEN.cmake
new file mode 100644
index 0000000..6ac879e
--- /dev/null
+++ b/CMake/FindEIGEN.cmake
@@ -0,0 +1,78 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# FindEIGEN.cmake - try to find Eigen 3 headers
+# The logic that checks the version comes from FindEigen3.cmake (source dir)
+# ----------------------------------------------------------------------------   
+# output:
+#    EIGEN_FOUND             : TRUE/FALSE
+#    EIGEN_INCLUDE_DIRS      : where the Eigen/*.h are              [cached]
+#    EIGEN_VERSION           : version number of Eigen
+# ----------------------------------------------------------------------------
+# autodetection:
+#    utiliser "CMAKE_PREFIX_PATH=c:\local"
+#          ou "CMAKE_INCLUDE_PATH=c:\local\include"
+#          ou "INCLUDE=c:\local\include"
+# ----------------------------------------------------------------------------   
+
+# Check version (only for Eigen 3)
+macro(_eigen3_check_version)
+    file(READ "${EIGEN_INCLUDE_DIRS}/Eigen/src/Core/util/Macros.h" _eigen3_version_header)
+
+    string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}")
+    set(EIGEN_WORLD_VERSION "${CMAKE_MATCH_1}")
+    string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}")
+    set(EIGEN_MAJOR_VERSION "${CMAKE_MATCH_1}")
+    string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}")
+    set(EIGEN_MINOR_VERSION "${CMAKE_MATCH_1}")
+
+    set(EIGEN_VERSION ${EIGEN_WORLD_VERSION}.${EIGEN_MAJOR_VERSION}.${EIGEN_MINOR_VERSION})
+
+    if(${EIGEN_VERSION} VERSION_LESS ${EIGEN_FIND_VERSION})
+        message(FATAL_ERROR "Eigen version ${EIGEN_VERSION} found in ${EIGEN_INCLUDE_DIRS}, but at least version ${EIGEN_FIND_VERSION} is required!")
+    endif()
+endmacro()
+
+# Set a dummy version if not provided
+if(NOT EIGEN_FIND_VERSION)
+    if(NOT EIGEN_FIND_VERSION_MAJOR)
+        set(EIGEN_FIND_VERSION_MAJOR 3)
+    endif()
+    if(NOT EIGEN_FIND_VERSION_MINOR)
+        set(EIGEN_FIND_VERSION_MINOR 3)
+    endif()
+    if(NOT EIGEN_FIND_VERSION_PATCH)
+        set(EIGEN_FIND_VERSION_PATCH 4)
+    endif()
+
+    set(EIGEN_FIND_VERSION "${EIGEN_FIND_VERSION_MAJOR}.${EIGEN_FIND_VERSION_MINOR}.${EIGEN_FIND_VERSION_PATCH}")
+endif()
+
+# Find the header and check the version
+find_path(EIGEN_INCLUDE_DIRS "Eigen/Dense" PATHS "/usr/include/eigen3")
+if (EIGEN_INCLUDE_DIRS)
+    _eigen3_check_version()
+else()
+    message(FATAL_ERROR "Eigen3 headers not found! Define the path in the INCLUDE environment variable.")
+endif()
+
+# handle the QUIETLY and REQUIRED arguments and set EIGEN_FOUND to TRUE
+# if all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(EIGEN
+                                  FOUND_VAR EIGEN_FOUND
+                                  REQUIRED_VARS EIGEN_INCLUDE_DIRS
+                                  VERSION_VAR EIGEN_VERSION)
+
+#MESSAGE(STATUS "EIGEN_FOUND = ${EIGEN_FOUND}")
diff --git a/CMake/FindTBB.cmake b/CMake/FindTBB.cmake
new file mode 100644
index 0000000..bbe3a4f
--- /dev/null
+++ b/CMake/FindTBB.cmake
@@ -0,0 +1,277 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# FindTBB.cmake - try to find Intel Threading Building Blocks libraries
+#    (RoBo)
+# ----------------------------------------------------------------------------   
+# input:
+#    ENABLE_TBBMALLOC : ON/OFF
+# output:
+#    TBB_FOUND             : TRUE/FALSE
+#    TBB_LIBRARIES         : list of tbb libraries to link with 
+#    TBB_LIB_PATH          : where the optimized .so/.lib are   [cached]
+#    TBB_LIB_PATH_DEBUG    : where the debug .so/.lib are       [cached]
+#    TBB_INCLUDE_DIRS      : where the tbb/*.h are              [cached]
+#    TBB_VERSION_INTERFACE : 
+#    TBB_VERSION_MAJOR     : 
+#    TBB_VERSION_MINOR     : 
+#    TBB_VERSION_STRING    : version such as "4.2"
+#    TBB_CXX_FLAGS_DEBUG   : to be added to
+# ----------------------------------------------------------------------------   
+# todo:
+#    TBB_DEFINITIONS ? (args suppl en debug)
+#
+# autodetection:
+#    succeeds if tbb.dll/tbb_debug.dll are in the PATH/LD_LIBRARY_PATH
+#    otherwise, you may set TBB_LIB_PATH, TBB_LIB_PATH_DEBUG manually
+#
+# main advantage: 
+#    the link will be always performed with the library corresponding 
+#    to dynamic lib the PATH
+#    => avoids problem when 2 sets of libs are installed in the system
+#
+# remarks:
+#    $ENV{TBBROOT} is *not* used here because it is rather difficult 
+#    to guess the wanted target architecture
+#
+# tested on:
+#    win7-msvc + official tbb binaries
+#    winxp-mingw32 + tbb compiled from src
+#    linux + installed parallel studio 
+#
+# memo:
+#    http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries#Writing_find_modules
+# ----------------------------------------------------------------------------   
+
+set (_VERB 0)  # set to 1 for debugging
+
+OPTION(ENABLE_TBBMALLOC "Use TBBMALLOC" OFF)
+
+IF(_VERB)  # Debug
+    MESSAGE(STATUS "-------------------------------------")
+    MESSAGE(STATUS " FindTBB")
+    MESSAGE(STATUS "-------------------------------------")
+
+    MESSAGE(STATUS "CMAKE_SHARED_LIBRARY_SUFFIX=${CMAKE_SHARED_LIBRARY_SUFFIX}")
+    MESSAGE(STATUS "CMAKE_SHARED_MODULE_SUFFIX=${CMAKE_SHARED_MODULE_SUFFIX}")
+    MESSAGE(STATUS "CMAKE_FIND_LIBRARY_SUFFIX=${CMAKE_FIND_LIBRARY_SUFFIX}")
+    MESSAGE(STATUS "TBB_FIND_REQUIRED=${TBB_FIND_REQUIRED}") # automatiquement à 1 si REQUIRED
+    MESSAGE(STATUS "TBB_USE_TBBMALLOC=${TBB_USE_TBBMALLOC}")
+    MESSAGE(STATUS "WIN32=${WIN32}")
+    MESSAGE(STATUS "MSVC=${MSVC}")
+    MESSAGE(STATUS "MINGW=${MINGW}")
+    MESSAGE(STATUS "TBBROOT=$ENV{TBBROOT}")
+ENDIF()
+
+SET(TBB_CXX_FLAGS_DEBUG "-DTBB_USE_THREADING_TOOLS=1 -DTBB_USE_DEBUG=1")
+
+# --- List of libraries to be found ---
+
+set(_TBB_TBBLIB_NAME    "tbb")
+set(_TBB_PROXYLIB_NAME  "tbbmalloc_proxy")
+set(_TBB_MALLOCLIB_NAME "tbbmalloc")
+
+set(_TBB_LIBSET1 ${_TBB_TBBLIB_NAME})
+set(_TBB_LIBSET2 ${_TBB_PROXYLIB_NAME} ${_TBB_MALLOCLIB_NAME})
+
+# ----------------------------------------------------------------------------   
+# --- TBB_LIB_PATH ---
+# ----------------------------------------------------------------------------   
+# method:
+#   - look for the dynamic lib in the PATH/LD_LIBRARY_PATH 
+#     on linux or win/mingw; this path is correct
+#   - on win/msvc, replace "bin" => "lib" in the path previously found
+
+SET(_TBB_LIB_PATH ${TBB_LIB_PATH})                              # copy cached value
+IF(NOT _TBB_LIB_PATH)                                           # work on copy
+    # try to find "(lib)tbb.dll/so" from the env variables
+    IF(MSVC)
+        find_file(_TBB_TBBDLL "tbb.dll" PATHS "$ENV{TBBROOT}/lib/$ENV{TBB_ARCH_PLATFORM}" )
+    ELSEIF(APPLE)
+        find_library(_TBB_TBBDLL "tbb" PATHS "" ENV DYLD_LIBRARY_PATH)
+    ELSE()
+        find_library(_TBB_TBBDLL "tbb" PATHS "" ENV LD_LIBRARY_PATH)
+    ENDIF()
+    #MESSAGE(STATUS "_TBB_TBBDLL=${_TBB_TBBDLL}")
+    IF(_TBB_TBBDLL)
+        get_filename_component(_TBB_DLL_PATH ${_TBB_TBBDLL} PATH CACHE)
+        unset(_TBB_TBBDLL CACHE)
+    
+        IF(MSVC)
+            STRING(REPLACE "/bin/" "/lib/" _TBB_LIB_PATH ${_TBB_DLL_PATH})
+        ELSE()
+            SET(_TBB_LIB_PATH ${_TBB_DLL_PATH}) 
+        ENDIF()
+        unset(_TBB_DLL_PATH CACHE)
+        #MESSAGE(STATUS "_TBB_LIB_PATH=${_TBB_LIB_PATH}")
+    ELSE()
+        MESSAGE(WARNING "!!!!!!!! ${CMAKE_SHARED_LIBRARY_PREFIX}${_TBB_TBBLIB_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX} should be in PATH/LD_LIBRARY_PATH !!!!!!!!!")
+    ENDIF()
+    unset(_TBB_TBBDLL CACHE)
+ENDIF()
+IF(NOT TBB_LIB_PATH) # set cache if needed
+    SET(TBB_LIB_PATH "${_TBB_LIB_PATH}" CACHE PATH "where the optimized .so/.lib are" FORCE)
+ENDIF()
+
+# ----------------------------------------------------------------------------   
+# --- TBB_LIB_PATH_DEBUG ---
+# ----------------------------------------------------------------------------   
+#   same method for debug libs
+
+SET(_TBB_LIB_PATH_DEBUG ${TBB_LIB_PATH_DEBUG})                              # copy cached value
+IF(NOT _TBB_LIB_PATH_DEBUG)                                                 # work on copy
+    # try to find "(lib)tbb_debug.dll/so" from the env variables
+    IF(MSVC)
+        find_file(_TBB_TBBDLL_DEBUG "tbb_debug.dll" "tbb.dll" PATHS "$ENV{TBBROOT}/lib/$ENV{TBB_ARCH_PLATFORM}" )
+    ELSEIF(APPLE)
+        find_library(_TBB_TBBDLL_DEBUG "tbb_debug" "tbb" PATHS "" ENV DYLD_LIBRARY_PATH)
+    ELSE()
+        find_library(_TBB_TBBDLL_DEBUG "tbb_debug" "tbb" PATHS "" ENV LD_LIBRARY_PATH)
+    ENDIF()
+    #MESSAGE(STATUS "_TBB_TBBDLL_DEBUG=${_TBB_TBBDLL_DEBUG}")
+    IF(_TBB_TBBDLL_DEBUG)
+        get_filename_component(_TBB_DLL_PATH_DEBUG ${_TBB_TBBDLL_DEBUG} PATH CACHE)
+        unset(_TBB_TBBDLL_DEBUG CACHE)
+    
+        IF(MSVC)
+            STRING(REPLACE "/bin/" "/lib/" _TBB_LIB_PATH_DEBUG ${_TBB_DLL_PATH_DEBUG})
+        ELSE()
+            SET(_TBB_LIB_PATH_DEBUG ${_TBB_DLL_PATH_DEBUG}) 
+        ENDIF()
+        unset(_TBB_DLL_PATH_DEBUG CACHE)
+        #MESSAGE(STATUS "_TBB_LIB_PATH_DEBUG=${_TBB_LIB_PATH_DEBUG}")
+    ELSE()
+        MESSAGE(WARNING "!!!!!!!! ${CMAKE_SHARED_LIBRARY_PREFIX}${_TBB_TBBLIB_NAME}_debug${CMAKE_SHARED_LIBRARY_SUFFIX} should be in PATH/LD_LIBRARY_PATH !!!!!!!!!")
+    ENDIF()
+    unset(_TBB_TBBDLL_DEBUG CACHE)
+ENDIF()
+IF(NOT TBB_LIB_PATH_DEBUG) # set cache if needed
+    SET(TBB_LIB_PATH_DEBUG ${_TBB_LIB_PATH_DEBUG} CACHE PATH "where the debug .so/.lib are" FORCE)
+ENDIF()
+
+# ----------------------------------------------------------------------------   
+# TBB_LIBRARIES: search full path of all libraries
+# ----------------------------------------------------------------------------   
+
+macro(resolveLibs VARNAME LISTNAME)
+    foreach(LIB ${${LISTNAME}})
+        # look for optimized version
+        find_library(FOUND_LIB ${LIB} PATHS ${TBB_LIB_PATH} "$ENV{TBBROOT}/lib/$ENV{TBB_ARCH_PLATFORM}")
+        #MESSAGE(STATUS "FOUND_LIB=${FOUND_LIB}")
+        if(FOUND_LIB)
+            list(APPEND ${VARNAME} "optimized" ${FOUND_LIB})
+        endif()
+        unset(FOUND_LIB CACHE)
+        # look for debug version
+        find_library(FOUND_LIB ${LIB}_debug PATHS ${TBB_LIB_PATH_DEBUG} "$ENV{TBBROOT}/lib/$ENV{TBB_ARCH_PLATFORM}")
+        #MESSAGE(STATUS "FOUND_LIB=${FOUND_LIB}")
+        if(FOUND_LIB)
+            list(APPEND ${VARNAME} "debug" ${FOUND_LIB})
+        endif()
+        unset(FOUND_LIB CACHE)
+    endforeach()
+endmacro()
+
+# search for all libs
+IF( TBB_LIB_PATH AND TBB_LIB_PATH_DEBUG)
+    resolveLibs(_TBB_LIBSET1_DIRS _TBB_LIBSET1)
+    resolveLibs(_TBB_LIBSET2_DIRS _TBB_LIBSET2)
+ENDIF()
+
+# build full list of libs
+set(TBB_LIBRARIES ${_TBB_LIBSET1_DIRS})
+IF(ENABLE_TBBMALLOC)
+    LIST(APPEND TBB_LIBRARIES ${_TBB_LIBSET2_DIRS} )
+ENDIF()
+
+# print for debug
+IF(_VERB)
+    foreach(LIB ${TBB_LIBRARIES})
+        MESSAGE(STATUS "lib=${LIB}")
+    endforeach()
+ENDIF()
+
+# ----------------------------------------------------------------------------   
+# TBB_INCLUDE_DIRS: search include dir
+# ----------------------------------------------------------------------------   
+
+SET(_TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIRS})
+IF( (NOT _TBB_INCLUDE_DIRS) AND (TBB_LIB_PATH))
+    SET(_VAR1 ${TBB_LIB_PATH})
+    SET(_BASENAME ${_VAR1})
+    SET(_TBB_TBBROOT "_TBB_TBBROOT-NOTFOUND")
+    WHILE( (NOT _TBB_TBBROOT) AND (_BASENAME) )
+        get_filename_component(_DIRNAME ${_VAR1} PATH)
+        #MESSAGE(STATUS "_DIRNAME=${_DIRNAME}")	
+        get_filename_component(_BASENAME ${_VAR1} NAME)
+        #MESSAGE(STATUS "_BASENAME=${_BASENAME}") # on remonte jusqu'à un "lib" ou "build"
+        
+        IF( ("${_BASENAME}" STREQUAL "lib") OR ("${_BASENAME}" STREQUAL "build") OR ("${_BASENAME}" STREQUAL "bin") )
+            SET(_TBB_TBBROOT ${_DIRNAME})
+        ELSE()
+            SET(_VAR1 ${_DIRNAME})
+        ENDIF()
+    ENDWHILE()
+    #MESSAGE(STATUS "_TBB_TBBROOT=${_TBB_TBBROOT}")
+
+    FIND_PATH(_TBB_INCLUDE_DIRS 
+                 NAMES  tbb/parallel_for.h
+                 PATHS "${_TBB_TBBROOT}" "$ENV{TBBROOT}"
+                 PATH_SUFFIXES include
+                )
+    #MESSAGE(STATUS "_TBB_INCLUDE_DIRS=${_TBB_INCLUDE_DIRS}")
+ENDIF()
+IF(NOT TBB_INCLUDE_DIRS) # set cache if needed
+    SET(TBB_INCLUDE_DIRS ${_TBB_INCLUDE_DIRS} CACHE PATH "where the tbb/*.h are" FORCE)
+ENDIF()
+unset(_TBB_INCLUDE_DIRS CACHE)
+
+# ----------------------------------------------------------------------------   
+# Versions
+# ----------------------------------------------------------------------------  
+ 
+SET(_TBB_VERSION_INTERFACE ${TBB_VERSION_INTERFACE})
+IF( (NOT TBB_VERSION_INTERFACE) AND TBB_INCLUDE_DIRS )
+    FILE(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _FILE)
+    set(_TBB_VERSION_MAJOR 0)
+    set(_TBB_VERSION_MINOR 0)
+    STRING(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _TBB_VERSION_INTERFACE "${_FILE}")
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*"     "\\1" _TBB_VERSION_MAJOR     "${_FILE}")
+    STRING(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*"     "\\1" _TBB_VERSION_MINOR     "${_FILE}")
+    set(_TBB_VERSION_STRING "${_TBB_VERSION_MAJOR}.${_TBB_VERSION_MINOR}")
+    unset(_FILE)
+ENDIF()
+IF(NOT TBB_VERSION_INTERFACE)
+    SET(TBB_VERSION_INTERFACE ${_TBB_VERSION_INTERFACE} CACHE STRING "" FORCE)
+    SET(TBB_VERSION_MAJOR ${_TBB_VERSION_MAJOR} CACHE INTERNAL "" FORCE)
+    SET(TBB_VERSION_MINOR ${_TBB_VERSION_MINOR} CACHE INTERNAL "" FORCE)
+    SET(TBB_VERSION_STRING ${_TBB_VERSION_STRING} CACHE STRING "" FORCE)
+    mark_as_advanced(TBB_VERSION_INTERFACE)
+    mark_as_advanced(TBB_VERSION_MAJOR)
+    mark_as_advanced(TBB_VERSION_MINOR)
+    mark_as_advanced(TBB_VERSION_STRING)
+ENDIF()
+# ----------------------------------------------------------------------------   
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set TBB_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(TBB DEFAULT_MSG 
+                TBB_LIBRARIES TBB_INCLUDE_DIRS
+                TBB_LIB_PATH TBB_LIB_PATH_DEBUG)
+
+#MESSAGE(STATUS "TBB_FOUND = ${TBB_FOUND}")
+# ----------------------------------------------------------------------------   
+
+unset(_VERB)
diff --git a/CMake/fpmMacros.cmake b/CMake/fpmMacros.cmake
new file mode 100644
index 0000000..53075b9
--- /dev/null
+++ b/CMake/fpmMacros.cmake
@@ -0,0 +1,41 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# useful macros/fcts
+
+MACRO(MACRO_AddTest srcDir)
+    FILE(GLOB tfiles RELATIVE ${srcDir} ${srcDir}/*)
+    FOREACH(tfile ${tfiles})
+        SET(spath ${srcDir}/${tfile})
+        IF(NOT IS_DIRECTORY ${spath} AND 
+           ${spath} MATCHES ".+\\.py$" AND 
+           NOT ${tfile} STREQUAL "__init__.py")
+            STRING(REPLACE "${PROJECT_SOURCE_DIR}/" "" strip ${spath}) 
+            MESSAGE(STATUS "Adding test ${strip}")
+            ADD_TEST(NAME ${strip} 
+                     WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} 
+                     COMMAND ${PYTHON_EXECUTABLE} run_fpm.py --nogui --clean ${strip})            
+        ELSE()
+            MACRO_AddTest(${srcDir}/${tfile})
+        ENDIF()
+    ENDFOREACH()
+ENDMACRO()
+
+
+MACRO(MACRO_DebugPostfix libname)
+    IF(MSVC)
+        SET_TARGET_PROPERTIES(${libname} PROPERTIES DEBUG_POSTFIX "_d")
+    ENDIF(MSVC)
+ENDMACRO()
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..9df63d9
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,124 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# ----------------------------------------------------------------------------
+PROJECT(fpm)
+# ----------------------------------------------------------------------------
+CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
+IF(${CMAKE_VERSION} VERSION_GREATER "3.14.0") # we might want to update the project and use the NEW behavior here
+    cmake_policy(SET CMP0078 OLD)
+    cmake_policy(SET CMP0086 OLD)
+ENDIF()
+
+SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
+                        "Single output directory for building all libraries.")
+SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE PATH
+                        "Single output directory for building all executables.")
+MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH EXECUTABLE_OUTPUT_PATH)
+
+IF(NOT CMAKE_BUILD_TYPE)
+    SET( CMAKE_BUILD_TYPE "Release" CACHE STRING 
+         "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+         FORCE)
+ENDIF(NOT CMAKE_BUILD_TYPE)
+MESSAGE(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
+
+LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake")
+
+# -- GENERAL OPTIONS
+
+# print OS
+MESSAGE(STATUS "CMAKE_SYSTEM_NAME=\"${CMAKE_SYSTEM_NAME}\"")
+MESSAGE(STATUS "CMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID}")
+
+# -- macros/fcts
+INCLUDE(fpmMacros)
+
+# -- C++11
+SET(CMAKE_CXX_STANDARD 11) # newer way to set C++11 (requires cmake>=3.1)
+SET(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# Set specific compiler flags
+IF((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel"))
+    IF(NOT APPLE)
+        SET(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-as-needed")
+    ENDIF()
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # add verbosity
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp -Wno-unknown-pragmas -Wno-sign-compare") # merge trilinos
+ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_DEPRECATE)
+    ADD_DEFINITIONS(-D_USE_MATH_DEFINES) # otherwise M_PI is undefined
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")  # parallel build with MSVC
+    #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4")  # add verbosity
+ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-register")
+    #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Weverything") # add verbosity
+ENDIF()
+
+# -- Search for Python
+IF (CMAKE_VERSION VERSION_LESS 3.12.0)
+    FIND_PACKAGE(PythonInterp 3.6 REQUIRED)
+    FIND_PACKAGE(PythonLibs 3.6 REQUIRED)
+ELSE()
+    find_package (Python3 COMPONENTS Interpreter Development)
+    # use Python3_ROOT_DIR if wrong python found (e.g. anaconda)
+    SET(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
+    SET(PYTHON_LIBRARIES ${Python3_LIBRARIES})
+    SET(PYTHON_INCLUDE_PATH ${Python3_INCLUDE_DIRS}) 
+    SET(PYTHONLIBS_VERSION_STRING ${Python3_VERSION})     
+ENDIF()
+MESSAGE(STATUS "PYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}")
+MESSAGE(STATUS "PYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}")
+MESSAGE(STATUS "PYTHON_INCLUDE_DIR:FILEPATH=${PYTHON_INCLUDE_DIR}")
+MESSAGE(STATUS "PYTHON_FRAMEWORK_INCLUDES=${PYTHON_FRAMEWORK_INCLUDES}")
+MESSAGE(STATUS "PYTHONLIBS_VERSION_STRING=${PYTHONLIBS_VERSION_STRING}")
+MESSAGE(STATUS "Python_FRAMEWORKS=${Python_FRAMEWORKS}")
+
+# -- Search for SWIG
+FIND_PACKAGE(SWIG REQUIRED)
+IF(CMAKE_GENERATOR MATCHES "Visual Studio") # not MSVC because of nmake & jom
+    SET(CMAKE_SWIG_OUTDIR "${EXECUTABLE_OUTPUT_PATH}/$(Configuration)/")
+ELSE()
+    SET(CMAKE_SWIG_OUTDIR "${EXECUTABLE_OUTPUT_PATH}")
+ENDIF()
+
+# -- Doxygen (https://vicrucann.github.io/tutorials/quick-cmake-doxygen/)
+# check if Doxygen is installed
+FIND_PACKAGE(Doxygen)
+IF(DOXYGEN_FOUND)
+    # set input and output files
+    SET(DOXYGEN_IN ${PROJECT_SOURCE_DIR}/Doxyfile.in)
+    SET(DOXYGEN_OUT ${PROJECT_BINARY_DIR}/Doxyfile)
+
+    # request to configure the file
+    CONFIGURE_FILE(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
+    #message("Doxygen build started")
+
+    # note the option ALL which allows to build the docs together with the application
+    # "make dox" rebuilds the doc
+    ADD_CUSTOM_TARGET( dox #ALL
+        COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYGEN_OUT}
+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+        COMMENT "Generating API documentation with Doxygen"
+        VERBATIM )
+ELSE()
+    MESSAGE("Doxygen need to be installed to generate the doxygen documentation")
+ENDIF()
+
+# -- CTest
+ENABLE_TESTING()
+
+# -- Modules
+ADD_SUBDIRECTORY( fpm )
+
diff --git a/Doxyfile.in b/Doxyfile.in
new file mode 100644
index 0000000..ac19f6e
--- /dev/null
+++ b/Doxyfile.in
@@ -0,0 +1,2487 @@
+# Doxyfile 1.8.11
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = fpm
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          = "Field panel method"
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO           = @PROJECT_SOURCE_DIR@/dox/logo.jpg
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = @PROJECT_BINARY_DIR@/doxygen
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                = 
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      = 
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO, these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    = 
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            = 
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR          = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = @PROJECT_SOURCE_DIR@/README.md \
+                         @PROJECT_SOURCE_DIR@/src 
+
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl,
+# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.c \
+                         *.cpp \
+                         *.h \
+                         *.hpp \
+                         *.md
+
+#FILE_PATTERNS          = *.c \
+#                         *.cc \
+#                         *.cxx \
+#                         *.cpp \
+#                         *.c++ \
+#                         *.java \
+#                         *.ii \
+#                         *.ixx \
+#                         *.ipp \
+#                         *.i++ \
+#                         *.inl \
+#                         *.idl \
+#                         *.ddl \
+#                         *.odl \
+#                         *.h \
+#                         *.hh \
+#                         *.hxx \
+#                         *.hpp \
+#                         *.h++ \
+#                         *.cs \
+#                         *.d \
+#                         *.php \
+#                         *.php4 \
+#                         *.php5 \
+#                         *.phtml \
+#                         *.inc \
+#                         *.m \
+#                         *.markdown \
+#                         *.md \
+#                         *.mm \
+#                         *.dox \
+#                         *.py \
+#                         *.pyw \
+#                         *.f90 \
+#                         *.f \
+#                         *.for \
+#                         *.tcl \
+#                         *.vhd \
+#                         *.vhdl \
+#                         *.ucf \
+#                         *.qsf \
+#                         *.as \
+#                         *.js
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = 
+
+# 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
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = @PROJECT_SOURCE_DIR@/dox/
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS = 
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE =  README.md
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the
+# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
+# cost of reduced performance. This can be particularly helpful with template
+# rich C++ code for which doxygen's built-in parser lacks the necessary type
+# information.
+# Note: The availability of this option depends on whether or not doxygen was
+# generated with the -Duse-libclang=ON option for CMake.
+# The default value is: NO.
+
+CLANG_ASSISTED_PARSING = NO
+
+# If clang assisted parsing is enabled you can provide the compiler with command
+# line options that you would normally use when invoking the compiler. Note that
+# the include paths will already be set by doxygen for the files and directories
+# specified with INPUT and INCLUDE_PATH.
+# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
+
+CLANG_OPTIONS          = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = NO
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        = 
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  = 
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       = 
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               = 
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           = 
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the master .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     = 
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               = 
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   = 
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  = 
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  = 
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           = 
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = YES
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = YES
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     = 
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       = 
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       = 
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     = 
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         = amsmath
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           = 
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           = 
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET = 
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES, to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    = 
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE        = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             = 
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sf.net) file that captures the
+# structure of the code including all documentation. Note that this feature is
+# still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            = 
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               = 
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: YES.
+
+HAVE_DOT               = YES
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           = 
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
+# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
+# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           = 
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           = 
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           = 
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH      = 
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH  = 
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..86cd459
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,504 @@
+GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+(This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.)
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+                  GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                            NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    {description}
+    Copyright (C) {year} {fullname}
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
+    USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random
+  Hacker.
+
+  {signature of Ty Coon}, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
\ No newline at end of file
diff --git a/README.md b/README.md
index f4cb02f..d306603 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,11 @@
 # fpm
+Field panel method for solving transonic flows using the full potential equation
 
+![](/dox/img.png)
+
+## Features
+
+## Build
+Depends on python3, swig, tbb, eigen.
+
+## References
diff --git a/dox/img.png b/dox/img.png
new file mode 100644
index 0000000000000000000000000000000000000000..0fd3ab84749e1471a68c7d2eef825d1d9b9ed67d
GIT binary patch
literal 154189
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

literal 0
HcmV?d00001

diff --git a/dox/logo.jpg b/dox/logo.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..17aeb3377b96b8ec85fed719dd8b3fdc25bd6913
GIT binary patch
literal 10837
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

literal 0
HcmV?d00001

diff --git a/fpm/CMakeLists.txt b/fpm/CMakeLists.txt
new file mode 100644
index 0000000..25a1abe
--- /dev/null
+++ b/fpm/CMakeLists.txt
@@ -0,0 +1,23 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# CMake input file of fwk.so
+
+# Add source dir
+ADD_SUBDIRECTORY( src )
+ADD_SUBDIRECTORY( _src )
+
+# Add test dir
+MACRO_AddTest(${CMAKE_CURRENT_SOURCE_DIR}/tests)
+
diff --git a/fpm/__init__.py b/fpm/__init__.py
new file mode 100644
index 0000000..0bc207d
--- /dev/null
+++ b/fpm/__init__.py
@@ -0,0 +1,8 @@
+# -*- coding: utf-8 -*-
+# fpm module initialization file
+
+import fwk
+fwk.wutils.findbins('fpm', verb=False)
+
+from fpmw import *
+
diff --git a/fpm/_src/CMakeLists.txt b/fpm/_src/CMakeLists.txt
new file mode 100644
index 0000000..059425a
--- /dev/null
+++ b/fpm/_src/CMakeLists.txt
@@ -0,0 +1,44 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# CMake file for the SWIG interface of fpm.so
+
+INCLUDE(${SWIG_USE_FILE})
+
+FILE(GLOB SRCS *.h *.cpp *.inl *.swg)
+FILE(GLOB ISRCS *.i)
+
+SET(CMAKE_SWIG_FLAGS "")
+SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES CPLUSPLUS ON)
+
+SET(SWINCFLAGS
+-I${PROJECT_SOURCE_DIR}/fpm/src
+)
+SET_SOURCE_FILES_PROPERTIES(${ISRCS} PROPERTIES SWIG_FLAGS "${SWINCFLAGS}")
+
+if (${CMAKE_VERSION} VERSION_LESS "3.8.0")
+    SWIG_ADD_MODULE(fpmw python ${ISRCS} ${SRCS})
+else()
+    SWIG_ADD_LIBRARY(fpmw LANGUAGE python SOURCES ${ISRCS} ${SRCS})
+endif()
+MACRO_DebugPostfix(_fpmw)
+
+TARGET_INCLUDE_DIRECTORIES(_fpmw PRIVATE ${PROJECT_SOURCE_DIR}/fpm/_src
+                                         ${PYTHON_INCLUDE_PATH}
+)
+
+SWIG_LINK_LIBRARIES(fpmw
+                    fpm ${PYTHON_LIBRARIES}
+)
+
diff --git a/fpm/_src/fpmw.h b/fpm/_src/fpmw.h
new file mode 100644
index 0000000..5967301
--- /dev/null
+++ b/fpm/_src/fpmw.h
@@ -0,0 +1,17 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "fObject.h"
diff --git a/fpm/_src/fpmw.i b/fpm/_src/fpmw.i
new file mode 100644
index 0000000..2da4432
--- /dev/null
+++ b/fpm/_src/fpmw.i
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// fpm.i: SWIG input file of the fpm python interface
+
+%feature("autodoc","1");
+
+%module(docstring=
+"'fpmw' module: field panel method
+(c) ULg - A&M",
+directors="1",
+threads="1"
+) fpmw
+%{
+
+//#if defined(_WIN32) && defined(__GNUC__)
+#undef _hypot
+#include <cmath>
+//#endif
+
+#include <memory>
+#include <string>
+#include <sstream>
+#include <typeinfo>
+
+#include "fpm.h"
+#include "fpmw.h"
+
+%}
+
+%include "fpmw.swg"
+
+%include "fpm.h"
+
+%include <std_shared_ptr.i>
+
+%shared_ptr(fpm::fSharedObject);
+%include "fObject.h"
+
+namespace fpm {
+
+%extend fObject {
+    std::string __str__() {
+        std::stringstream str; str << *self;
+        return str.str();
+    }
+}
+
+%extend fSharedObject {
+    std::string __str__() {
+        std::stringstream str; str << *self;
+        return str.str();
+    }
+}
+};
+
diff --git a/fpm/_src/fpmw.swg b/fpm/_src/fpmw.swg
new file mode 100644
index 0000000..169ce32
--- /dev/null
+++ b/fpm/_src/fpmw.swg
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+ // common includes
+
+// !! mingw + c++11 + python:
+// cmath doit être inclus AVANT Python.h (et en particulier pyconfig.h)
+// car il renomme hypot en _hypoth (bidouille liée au visual)
+%begin %{
+#if defined(_WIN32) && defined(__GNUC__)
+#include <cmath>
+#endif
+%}
+
+// petite bidouille pour pouvoir compiler avec "threads=1" et iterer sur des std_vector
+// (sinon ca explose � la destruction de l'iterateur)
+%nothread swig::SwigPyIterator::~SwigPyIterator();
+
+%include "std_string.i"
+%include "exception.i"
+%include "std_vector.i"
+%include "std_list.i"
+%include "std_map.i"
+
+// from: http://swig.10945.n7.nabble.com/Trapping-Swig-DirectorException-td6013.html
+// le code suivant permet de voir la call stack dans les appels C++ => python
+
+%{ 
+   static void handle_exception(void) { 
+     try { 
+       throw; 
+     } catch (std::exception &e) { 
+        std::stringstream txt; 
+        txt << e.what(); // << ' ' << typeid(e).name();
+        PyErr_SetString(PyExc_RuntimeError, e.what()); 
+     } 
+     catch(...) 
+     {
+        PyErr_SetString(PyExc_RuntimeError, "Unknown C++ Runtime Error");
+     } 
+   } 
+%} 
+
+%exception { 
+   try { 
+     $action 
+   } catch (...) { 
+     // Note that if a director method failed, the Python error indicator 
+     // already contains full details of the exception, and it will be 
+     // reraised when we go to SWIG_fail; so no need to convert the C++ 
+     // exception back to a Python one 
+     if (!PyErr_Occurred()) { 
+       handle_exception(); 
+     } 
+     SWIG_fail; 
+   } 
+} 
+
+%feature("director:except") { 
+   if ($error != NULL) { 
+     throw Swig::DirectorMethodException(); 
+   } 
+} 
+
+
+%ignore operator<<;
+
diff --git a/fpm/src/CMakeLists.txt b/fpm/src/CMakeLists.txt
new file mode 100644
index 0000000..e19d83a
--- /dev/null
+++ b/fpm/src/CMakeLists.txt
@@ -0,0 +1,36 @@
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# CMake input file of fpm.so
+
+FILE(GLOB SRCS *.h *.cpp *.inl *.hpp)
+
+ADD_LIBRARY(fpm SHARED ${SRCS})
+MACRO_DebugPostfix(fpm)
+
+TARGET_INCLUDE_DIRECTORIES(fpm PUBLIC ${PROJECT_SOURCE_DIR}/fpm/src)
+
+# -- TBB
+FIND_PACKAGE(TBB REQUIRED)
+SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${TBB_CXX_FLAGS_DEBUG}")
+TARGET_INCLUDE_DIRECTORIES(fpm PUBLIC ${TBB_INCLUDE_DIRS})
+TARGET_LINK_LIBRARIES(fpm ${TBB_LIBRARIES})
+
+# -- Eigen
+FIND_PACKAGE(EIGEN 3.3.4 REQUIRED)
+TARGET_INCLUDE_DIRECTORIES(fpm PUBLIC ${EIGEN_INCLUDE_DIRS})
+TARGET_COMPILE_DEFINITIONS(fpm PUBLIC EIGEN_DONT_PARALLELIZE)
+
+SOURCE_GROUP(base       REGULAR_EXPRESSION ".*\\.(cpp|inl|hpp|h)")
+
diff --git a/fpm/src/fObject.cpp b/fpm/src/fObject.cpp
new file mode 100644
index 0000000..55e8ca7
--- /dev/null
+++ b/fpm/src/fObject.cpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "fObject.h"
+
+namespace fpm
+{
+
+FPM_API std::ostream &
+operator<<(std::ostream &out, fObject const &obj)
+{
+    obj.write(out);
+    return out;
+}
+
+void fObject::write(std::ostream &out) const
+{
+}
+
+FPM_API std::ostream &
+operator<<(std::ostream &out, fSharedObject const &obj)
+{
+    obj.write(out);
+    return out;
+}
+
+void fSharedObject::write(std::ostream &out) const
+{
+}
+
+} // namespace fpm
+
diff --git a/fpm/src/fObject.h b/fpm/src/fObject.h
new file mode 100644
index 0000000..27a6948
--- /dev/null
+++ b/fpm/src/fObject.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef FOBJECT_H
+#define FOBJECT_H
+
+#include "fpm.h"
+#include <iostream>
+
+namespace fpm
+{
+
+/**
+ * @brief Base class of all virtual objects
+ *
+ *        The only purpose of this class is that it avoids many copy/paste for
+ *        the print function (__str__() fct) in SWIG/python
+ */
+
+class FPM_API fObject
+{
+public:
+    fObject() = default;
+    virtual ~fObject() {}
+    fObject(const fObject &) = delete;
+    fObject &operator=(const fObject &) = delete;
+
+#ifndef SWIG
+    friend FPM_API std::ostream &operator<<(std::ostream &out, fObject const &obj);
+    virtual void write(std::ostream &out) const;
+#endif
+};
+
+/**
+ * @brief Base class of smart-pointed objects (shared_ptr)
+ *
+ *        This base class is only required for "print" in SWIG/python.
+ *        std::cout << *o works from C++ (it calls "write") even if the object inherits from wObject
+ *        which is not defined in SWIG as shared_ptr-managed object
+ *        However "print o" fails in python if the shared object inherits from wObject.
+ *        This class also avoids a warning in SWIG telling that some derived or base classes are not
+ *        managed by shared_ptr.
+ */
+
+class FPM_API fSharedObject
+{
+public:
+    fSharedObject() = default;
+    virtual ~fSharedObject() {}
+    fSharedObject(const fSharedObject &) = delete;
+    fSharedObject &operator=(const fSharedObject &) = delete;
+
+#ifndef SWIG
+    friend FPM_API std::ostream &operator<<(std::ostream &out, fSharedObject const &obj);
+    virtual void write(std::ostream &out) const;
+#endif
+};
+
+} // namespace fpm
+
+#endif //FOBJECT_H
+
diff --git a/fpm/src/fpm.h b/fpm/src/fpm.h
new file mode 100644
index 0000000..e925020
--- /dev/null
+++ b/fpm/src/fpm.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2020 University of Liège
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// fpm global header
+
+#ifndef FPM_H
+#define FPM_H
+
+#if defined(WIN32)
+#ifdef fpm_EXPORTS
+#define FPM_API __declspec(dllexport)
+#else
+#define FPM_API __declspec(dllimport)
+#endif
+#else
+#define FPM_API
+#endif
+
+#ifdef _MSC_VER
+#if !defined(_CRT_SECURE_NO_WARNINGS)
+#define _CRT_SECURE_NO_WARNINGS 1
+#endif
+
+#pragma warning(disable : 4251) // DLL/templates non exportes
+#pragma warning(disable : 4275) // non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier'
+
+#define NOMINMAX // avoids the definition of "min/max" macro  in <minwindef.h> (which could shadow std::max)
+
+#endif //_MSC_VER
+
+
+namespace fpm
+{
+
+class fObject;
+
+} // namespace fpm
+
+
+#endif //FPM_H
+
diff --git a/fpm/tests/basic.py b/fpm/tests/basic.py
new file mode 100644
index 0000000..6da436c
--- /dev/null
+++ b/fpm/tests/basic.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# Copyright 2020 University of Liège
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#     http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# basic test
+
+import fpm
+from fwk.testing import *
+from fwk.coloring import ccolors
+
+def main():
+    a = 10.0
+    print(ccolors.ANSI_BLUE + 'PyTesting...' + ccolors.ANSI_RESET)
+    tests = CTests()
+    tests.add(CTest('test', a, 10., 1e-2))
+
+if __name__ == '__main__':
+    main()
+
diff --git a/run_fpm.py b/run_fpm.py
new file mode 100755
index 0000000..a63a0ec
--- /dev/null
+++ b/run_fpm.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- coding: utf8 -*-
+# test encoding: à-é-è-ô-ï-€
+#
+# runs a test as if it was installed
+#   - fixes the python path in a dev environment
+#   - creates a workspace folder
+
+if __name__ == "__main__":
+    import sys
+    import os
+
+    thisdir = os.path.split(os.path.abspath(__file__))[0]
+    
+    # look for fwk
+    fwkdir = os.path.abspath(os.path.join(thisdir, '..', 'waves'))
+    if not os.path.isdir(fwkdir):
+        raise Exception(
+            "'waves' not found - clone it next to fpm (from https://gitlab.uliege.be/am-dept/waves)")
+    sys.path.append(fwkdir)
+
+    # adds "." to the pythonpath (after waves so that waves is found first)
+    sys.path.append(thisdir)
+
+    import run  # maybe we should put the code of run in fwk....
+    run.main(thisdir)
-- 
GitLab