+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000..79ee123
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..9138ab7
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..79b3c94
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..354858b
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,43 @@
+# ---------------------------------------------------------------------------- #
+# emDNA CMake project
+#
+# Nicolas Clauvelin (n.clauvelin@gmail.com)
+#
+# ---------------------------------------------------------------------------- #
+
+
+# --- Project setup ---
+
+# CMake minimal version.
+cmake_minimum_required(VERSION 3.13)
+
+# Support for ccache.
+find_program(CCACHE_PROGRAM ccache)
+if(CCACHE_PROGRAM)
+ set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM}
+ CACHE STRING "(emDNA) C compiler ccache program" FORCE)
+ set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_PROGRAM}
+ CACHE STRING "(emDNA) C++ compiler ccache program" FORCE)
+ message("C/C++ compiler ccache: ${CCACHE_PROGRAM}")
+endif()
+
+# Define project.
+project(emDNA C CXX)
+
+# Enforce C++14 standard.
+set(CMAKE_CXX_STANDARD 14)
+
+# Enforce C99 standard.
+set(CMAKE_C_STANDARD 99)
+
+
+# --- Project components ---
+
+# Dependencies.
+include(deps/cereal.cmake)
+include(deps/eigen.cmake)
+include(deps/googletest.cmake)
+include(deps/nanoflann.cmake)
+
+# DNASim
+add_subdirectory(DNASim/)
diff --git a/DNASim/CMakeLists.txt b/DNASim/CMakeLists.txt
index 600fa0d..e7e6c3e 100644
--- a/DNASim/CMakeLists.txt
+++ b/DNASim/CMakeLists.txt
@@ -1,313 +1,13 @@
-# DNASim CMake
+# ---------------------------------------------------------------------------- #
+# DNASim
+#
+# Nicolas Clauvelin (n.clauvelin@gmail.com)
+#
+# ---------------------------------------------------------------------------- #
-# --- CMake gobal directives ---
+# Library.
+add_subdirectory(src/)
-cmake_minimum_required (VERSION 2.6)
-
-
-# --- DNASim project ---
-
-project (DNASim C CXX)
-include (DNASimCommon.cmake)
-set (DNASIM_MAJOR_VERSION "0")
-set (DNASIM_MINOR_VERSION "0")
-set (DNASIM_BUGFIX_VERSION "0")
-set (DNASIM_VERSION_NUMBER
- "${DNASIM_MAJOR_VERSION}.${DNASIM_MINOR_VERSION}.${DNASIM_BUGFIX_VERSION}"
- )
-set (DNASIM_VERSION "${DNASIM_VERSION_NUMBER}")
-
-
-# --- build type options ---
-
-if (NOT CMAKE_BUILD_TYPE)
-
- # compiler
- # force to discard any user input
- set (COMPILER ${CMAKE_CXX_COMPILER})
- mark_as_advanced (CLEAR CMAKE_CXX_COMPILER)
- set (CMAKE_CXX_COMPILER ${COMPILER}
- CACHE
- STRING
- "C++ compiler"
- FORCE)
-
- # set build type as MacOS
- # force to discard any user input
- set (CMAKE_BUILD_TYPE MACOS
- CACHE
- STRING
- "MacOS build settings."
- FORCE)
-
- # set MacOS c++ compiler flags
- set (MACOS_FLAGS "-O2 -march=native -msse")
- set (MACOS_FLAGS "${MACOS_FLAGS} -std=gnu++11 -stdlib=libc++")
- set (MACOS_FLAGS "${MACOS_FLAGS} -m64 -funroll-loops")
- set (MACOS_FLAGS "${MACOS_FLAGS} -msse3 -mssse3 -msse4.1 -msse4.2")
- set (MACOS_FLAGS "${MACOS_FLAGS} -ffast-math -fstrict-aliasing")
- set (MACOS_FLAGS "${MACOS_FLAGS} -Wno-deprecated -Weffc++")
- set (CMAKE_CXX_FLAGS_MACOS ${MACOS_FLAGS}
- CACHE
- FILEPATH
- "C++ MacOS compiler flags.")
-
- # set Unix cluster c++ compiler flags
- set (UNIX_FLAGS "-O2 -march=native -msse -mfpmath=sse")
- set (UNIX_FLAGS "${UNIX_FLAGS} -std=gnu++11")
- set (UNIX_FLAGS "${UNIX_FLAGS} -m64 -funroll-loops")
- set (UNIX_FLAGS "${UNIX_FLAGS} -msse3 -mssse3 -ffast-math")
- set (UNIX_FLAGS "${UNIX_FLAGS} -fstrict-aliasing")
- set (UNIX_FLAGS "${UNIX_FLAGS} -Wno-deprecated")
- set (CMAKE_CXX_FLAGS_UNIX ${UNIX_FLAGS}
- CACHE
- FILEPATH
- "C++ Unix compiler flags (optimized).")
-
- # OS X architectures
- if (APPLE)
- set (CMAKE_OSX_ARCHITECTURES "x86_64"
- CACHE
- STRING
- "Architecture to build against (OS X only)."
- FORCE)
- set (CMAKE_MACOSX_RPATH 1)
- endif (APPLE)
-
-endif (NOT CMAKE_BUILD_TYPE)
-
-if (APPLE)
- set (CMAKE_MACOSX_RPATH 1)
-endif (APPLE)
-
-
-# --- source tree directives --- #
-
-# add all source directories
-set (SourceDirectories
- src/dna
- src/file_io
- src/geometry
- src/maths
- src/pdb
- src/prn-generators
- src/serialization
- src/simulations
- )
-
-# headers and cpp files list
-append_files (DNASimHeaders "h" ${SourceDirectories})
-append_files (DNASimCppSources "cpp" ${SourceDirectories})
-
-# include directories
-include_directories (BEFORE src)
-include_directories (BEFORE src/dna)
-include_directories (BEFORE src/file_io)
-include_directories (BEFORE src/geometry)
-include_directories (BEFORE src/maths)
-include_directories (BEFORE src/pdb)
-include_directories (BEFORE src/prn-generators)
-include_directories (BEFORE src/serialization)
-include_directories (BEFORE src/simulations)
-include_directories (BEFORE src/dna_force_field_packager)
-include_directories (BEFORE deps/)
-
-# ODE support option
-option (DNASIM_ODE_COLLISION "Include ODE collision detection." OFF)
-if (DNASIM_ODE_COLLISION)
-
- set(ODE_TAR "${CMAKE_SOURCE_DIR}/deps/ode-0.13/ode-0.13.tar.gz")
- set(ODE_SRC_DIR "ode-0.13")
-
- # ODE static library target
- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/ode_shared/lib/libode.a
- COMMAND rm -Rf ${ODE_SRC_DIR}
- COMMAND tar xf ${ODE_TAR}
- COMMAND cp ${CMAKE_SOURCE_DIR}/deps/opende_compile_script.sh .
- COMMAND sh opende_compile_script.sh shared
- COMMAND rm -Rf ${ODE_SRC_DIR}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- COMMENT "Building ODE static library (fPIC)."
- )
- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/ode_static/lib/libode.a
- COMMAND rm -Rf ${ODE_SRC_DIR}
- COMMAND tar xf ${ODE_TAR}
- COMMAND cp ${CMAKE_SOURCE_DIR}/deps/opende_compile_script.sh .
- COMMAND sh opende_compile_script.sh static
- COMMAND rm -Rf ${ODE_SRC_DIR}
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- COMMENT "Building ODE static library."
- )
-
- # macro and headers
- add_definitions(-DWITH_ODE_COLLISION)
- include_directories (BEFORE ${CMAKE_BINARY_DIR}/ode_shared/include)
- include_directories (BEFORE ${CMAKE_BINARY_DIR}/ode_static/include)
-
-endif (DNASIM_ODE_COLLISION)
-
-
-# --- target directives ---
-
-# ODE support
-if (DNASIM_ODE_COLLISION)
- add_library (DNASim SHARED
- ${DNASimHeaders}
- ${DNASimCppSources}
- ${CMAKE_BINARY_DIR}/ode_shared/lib/libode.a
- )
- add_library (DNASimStatic STATIC
- ${DNASimHeaders}
- ${DNASimCppSources}
- ${CMAKE_BINARY_DIR}/ode_static/lib/libode.a
- )
- target_link_libraries (DNASim
- ${CMAKE_BINARY_DIR}/ode_shared/lib/libode.a
- )
- target_link_libraries (DNASimStatic
- ${CMAKE_BINARY_DIR}/ode_shared/lib/libode.a
- )
-
- # static objects
- add_custom_command(TARGET DNASimStatic
- POST_BUILD
- COMMAND ar x ode_static/lib/libode.a
- COMMAND ar rs libDNASim_static.a *.o
- COMMAND rm -Rf *.o __.SYMDEF
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- COMMENT "Assembling object files."
- )
-
-# no ODE
-else (DNASIM_ODE_COLLISION)
- add_library (DNASim SHARED
- ${DNASimHeaders}
- ${DNASimCppSources}
- )
- add_library (DNASimStatic STATIC
- ${DNASimHeaders}
- ${DNASimCppSources}
- )
-endif (DNASIM_ODE_COLLISION)
-
-# add _static to the static library name
-# set visibility as hidden
-set_target_properties(DNASimStatic
- PROPERTIES
- OUTPUT_NAME DNASim_static
- COMPILER_FLAGS "-fno-visibility-inlines-hidden -fvisibility=default"
- )
-
-# add fPIC flag for shared lib objects
-# set visibility as hidden
-# rpath for shared lib
-set_target_properties(DNASim
- PROPERTIES
- COMPILER_FLAGS "-fPIC -fno-visibility-inlines-hidden -fvisibility=default"
- INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
- INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib"
- )
-
-# ffield packager
-add_executable(ffield_packager
- src/dna_force_field_packager/ffield_packager.cpp)
-target_link_libraries(ffield_packager DNASimStatic)
-
-
-# --- testing ---
-
-option (DNASIM_TEST "Builds DNASim unit tests." OFF)
-if (DNASIM_TEST)
- add_subdirectory(tests)
-endif (DNASIM_TEST)
-
-
-# --- install directives ---
-
-# library install
-set (DNASimLibPermissions OWNER_READ;OWNER_WRITE;OWNER_EXECUTE)
-set (DNASimLibPermissions ${DNASimLibPermissions} GROUP_READ;GROUP_EXECUTE)
-set (DNASimLibPermissions ${DNASimLibPermissions} WORLD_READ;WORLD_EXECUTE)
-install (TARGETS DNASim
- DESTINATION lib
- PERMISSIONS ${DNASimLibPermissions}
- )
-install (TARGETS DNASimStatic
- DESTINATION lib
- PERMISSIONS ${DNASimLibPermissions}
- )
-
-# headers install
-set (HeadersDirectories
- src
- src/dna
- src/file_io
- src/geometry
- src/maths
- src/pdb
- src/prn-generators
- src/serialization
- src/simulations
- )
-append_files (DNASimLibHeaders "h" ${HeadersDirectories})
-set (DNASimHeadersPermissions OWNER_READ;OWNER_WRITE)
-set (DNASimHeadersPermissions ${DNASimHeadersPermissions} GROUP_READ)
-set (DNASimHeadersPermissions ${DNASimHeadersPermissions} WORLD_READ)
-install (FILES ${DNASimLibHeaders}
- DESTINATION include/DNASim
- PERMISSIONS ${DNASimHeadersPermissions}
- )
-install (DIRECTORY ${CMAKE_SOURCE_DIR}/deps/Eigen
- DESTINATION include/DNASim
- )
-install (DIRECTORY ${CMAKE_SOURCE_DIR}/deps/tclap
- DESTINATION include/DNASim
- )
-install (DIRECTORY ${CMAKE_SOURCE_DIR}/deps/cereal
- DESTINATION include/DNASim
- )
-install (DIRECTORY ${CMAKE_SOURCE_DIR}/deps/nanoflann
- DESTINATION include/DNASim
- )
-if (DNASIM_ODE_COLLISION)
- install (DIRECTORY ${CMAKE_BINARY_DIR}/ode_shared/include/ode
- DESTINATION include/DNASim
- )
-endif (DNASIM_ODE_COLLISION)
-
-# dna force field packager
-set (toolPermissions OWNER_READ;OWNER_WRITE;OWNER_EXECUTE)
-set (toolPermissions ${toolPermissions} GROUP_READ;GROUP_EXECUTE)
-set (toolPermissions ${toolPermissions} WORLD_READ;WORLD_EXECUTE)
-install (TARGETS ffield_packager
- DESTINATION bin
- PERMISSIONS ${toolPermissions}
- )
-
-
-# --- status messages ---
-message (STATUS "")
-message (STATUS "Build type: ${CMAKE_BUILD_TYPE}")
-message (STATUS
- "C++ compiler (CMAKE_CXX_COMPILER): ${CMAKE_CXX_COMPILER}")
-message (STATUS
- "C++ compiler flags (CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}): "
- "${CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE}}")
-message (STATUS "Installation path (CMAKE_INSTALL_PREFIX): "
- "${CMAKE_INSTALL_PREFIX}")
-if (APPLE)
- message (STATUS "OS X architecture to build (CMAKE_OSX_ARCHITECTURES): "
- "${CMAKE_OSX_ARCHITECTURES}")
- message (STATUS "OS X system target (CMAKE_OSX_DEPLOYMENT_TARGET): "
- "${CMAKE_OSX_DEPLOYMENT_TARGET}")
-endif (APPLE)
-message (STATUS "Include ODE collision detection (DNASIM_ODE_COLLISION): "
- "${DNASIM_ODE_COLLISION}")
-message (STATUS "Builds DNASim unit tests (DNASIM_TEST): "
- "${DNASIM_TEST}")
-message (STATUS "")
-if (DNASIM_TEST)
- message (STATUS "Run ${CMAKE_BINARY_DIR}/tests/DNASimTests to test the "
- "library\n")
-endif (DNASIM_TEST)
+# Tests.
+add_subdirectory(tests/)
diff --git a/DNASim/README.md b/DNASim/README.md
new file mode 100644
index 0000000..9951fcf
--- /dev/null
+++ b/DNASim/README.md
@@ -0,0 +1,3 @@
+# DNASim #
+
+The DNASim library is a companion library for emDNA tools.
diff --git a/DNASim/deps/Eigen/Array b/DNASim/deps/Eigen/Array
deleted file mode 100644
index 3d004fb..0000000
--- a/DNASim/deps/Eigen/Array
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef EIGEN_ARRAY_MODULE_H
-#define EIGEN_ARRAY_MODULE_H
-
-// include Core first to handle Eigen2 support macros
-#include "Core"
-
-#ifndef EIGEN2_SUPPORT
- #error The Eigen/Array header does no longer exist in Eigen3. All that functionality has moved to Eigen/Core.
-#endif
-
-#endif // EIGEN_ARRAY_MODULE_H
diff --git a/DNASim/deps/Eigen/CMakeLists.txt b/DNASim/deps/Eigen/CMakeLists.txt
deleted file mode 100644
index a92dd6f..0000000
--- a/DNASim/deps/Eigen/CMakeLists.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-include(RegexUtils)
-test_escape_string_as_regex()
-
-file(GLOB Eigen_directory_files "*")
-
-escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
-
-foreach(f ${Eigen_directory_files})
- if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src")
- list(APPEND Eigen_directory_files_to_install ${f})
- endif()
-endforeach(f ${Eigen_directory_files})
-
-install(FILES
- ${Eigen_directory_files_to_install}
- DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel
- )
-
-add_subdirectory(src)
diff --git a/DNASim/deps/Eigen/Cholesky b/DNASim/deps/Eigen/Cholesky
deleted file mode 100644
index f727f5d..0000000
--- a/DNASim/deps/Eigen/Cholesky
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef EIGEN_CHOLESKY_MODULE_H
-#define EIGEN_CHOLESKY_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup Cholesky_Module Cholesky module
- *
- *
- *
- * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices.
- * Those decompositions are accessible via the following MatrixBase methods:
- * - MatrixBase::llt(),
- * - MatrixBase::ldlt()
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/misc/Solve.h"
-#include "src/Cholesky/LLT.h"
-#include "src/Cholesky/LDLT.h"
-#ifdef EIGEN_USE_LAPACKE
-#include "src/Cholesky/LLT_MKL.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_CHOLESKY_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/CholmodSupport b/DNASim/deps/Eigen/CholmodSupport
deleted file mode 100644
index 745b884..0000000
--- a/DNASim/deps/Eigen/CholmodSupport
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
-#define EIGEN_CHOLMODSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-extern "C" {
- #include
-}
-
-/** \ingroup Support_modules
- * \defgroup CholmodSupport_Module CholmodSupport module
- *
- * This module provides an interface to the Cholmod library which is part of the suitesparse package.
- * It provides the two following main factorization classes:
- * - class CholmodSupernodalLLT: a supernodal LLT Cholesky factorization.
- * - class CholmodDecomposiiton: a general L(D)LT Cholesky factorization with automatic or explicit runtime selection of the underlying factorization method (supernodal or simplicial).
- *
- * For the sake of completeness, this module also propose the two following classes:
- * - class CholmodSimplicialLLT
- * - class CholmodSimplicialLDLT
- * Note that these classes does not bring any particular advantage compared to the built-in
- * SimplicialLLT and SimplicialLDLT factorization classes.
- *
- * \code
- * #include
- * \endcode
- *
- * In order to use this module, the cholmod headers must be accessible from the include paths, and your binary must be linked to the cholmod library and its dependencies.
- * The dependencies depend on how cholmod has been compiled.
- * For a cmake based project, you can use our FindCholmod.cmake module to help you in this task.
- *
- */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/CholmodSupport/CholmodSupport.h"
-
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_CHOLMODSUPPORT_MODULE_H
-
diff --git a/DNASim/deps/Eigen/Core b/DNASim/deps/Eigen/Core
deleted file mode 100644
index 9131cc3..0000000
--- a/DNASim/deps/Eigen/Core
+++ /dev/null
@@ -1,376 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008 Gael Guennebaud
-// Copyright (C) 2007-2011 Benoit Jacob
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_CORE_H
-#define EIGEN_CORE_H
-
-// first thing Eigen does: stop the compiler from committing suicide
-#include "src/Core/util/DisableStupidWarnings.h"
-
-// then include this file where all our macros are defined. It's really important to do it first because
-// it's where we do all the alignment settings (platform detection and honoring the user's will if he
-// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
-#include "src/Core/util/Macros.h"
-
-// Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
-// See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
-#if defined(__MINGW32__) && EIGEN_GNUC_AT_LEAST(4,6)
- #pragma GCC optimize ("-fno-ipa-cp-clone")
-#endif
-
-#include
-
-// this include file manages BLAS and MKL related macros
-// and inclusion of their respective header files
-#include "src/Core/util/MKL_support.h"
-
-// if alignment is disabled, then disable vectorization. Note: EIGEN_ALIGN is the proper check, it takes into
-// account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
-#if !EIGEN_ALIGN
- #ifndef EIGEN_DONT_VECTORIZE
- #define EIGEN_DONT_VECTORIZE
- #endif
-#endif
-
-#ifdef _MSC_VER
- #include // for _aligned_malloc -- need it regardless of whether vectorization is enabled
- #if (_MSC_VER >= 1500) // 2008 or later
- // Remember that usage of defined() in a #define is undefined by the standard.
- // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
- #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || defined(_M_X64)
- #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
- #endif
- #endif
-#else
- // Remember that usage of defined() in a #define is undefined by the standard
- #if (defined __SSE2__) && ( (!defined __GNUC__) || (defined __INTEL_COMPILER) || EIGEN_GNUC_AT_LEAST(4,2) )
- #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
- #endif
-#endif
-
-#ifndef EIGEN_DONT_VECTORIZE
-
- #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
-
- // Defines symbols for compile-time detection of which instructions are
- // used.
- // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
- #define EIGEN_VECTORIZE
- #define EIGEN_VECTORIZE_SSE
- #define EIGEN_VECTORIZE_SSE2
-
- // Detect sse3/ssse3/sse4:
- // gcc and icc defines __SSE3__, ...
- // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
- // want to force the use of those instructions with msvc.
- #ifdef __SSE3__
- #define EIGEN_VECTORIZE_SSE3
- #endif
- #ifdef __SSSE3__
- #define EIGEN_VECTORIZE_SSSE3
- #endif
- #ifdef __SSE4_1__
- #define EIGEN_VECTORIZE_SSE4_1
- #endif
- #ifdef __SSE4_2__
- #define EIGEN_VECTORIZE_SSE4_2
- #endif
-
- // include files
-
- // This extern "C" works around a MINGW-w64 compilation issue
- // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
- // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
- // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
- // with conflicting linkage. The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
- // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
- // notice that since these are C headers, the extern "C" is theoretically needed anyways.
- extern "C" {
- // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
- // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
- #ifdef __INTEL_COMPILER
- #include
- #else
- #include
- #include
- #ifdef EIGEN_VECTORIZE_SSE3
- #include
- #endif
- #ifdef EIGEN_VECTORIZE_SSSE3
- #include
- #endif
- #ifdef EIGEN_VECTORIZE_SSE4_1
- #include
- #endif
- #ifdef EIGEN_VECTORIZE_SSE4_2
- #include
- #endif
- #endif
- } // end extern "C"
- #elif defined __ALTIVEC__
- #define EIGEN_VECTORIZE
- #define EIGEN_VECTORIZE_ALTIVEC
- #include
- // We need to #undef all these ugly tokens defined in
- // => use __vector instead of vector
- #undef bool
- #undef vector
- #undef pixel
- #elif defined __ARM_NEON__
- #define EIGEN_VECTORIZE
- #define EIGEN_VECTORIZE_NEON
- #include
- #endif
-#endif
-
-#if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
- #define EIGEN_HAS_OPENMP
-#endif
-
-#ifdef EIGEN_HAS_OPENMP
-#include
-#endif
-
-// MSVC for windows mobile does not have the errno.h file
-#if !(defined(_MSC_VER) && defined(_WIN32_WCE)) && !defined(__ARMCC_VERSION)
-#define EIGEN_HAS_ERRNO
-#endif
-
-#ifdef EIGEN_HAS_ERRNO
-#include
-#endif
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include // for CHAR_BIT
-// for min/max:
-#include
-
-// for outputting debug info
-#ifdef EIGEN_DEBUG_ASSIGN
-#include
-#endif
-
-// required for __cpuid, needs to be included after cmath
-#if defined(_MSC_VER) && (defined(_M_IX86)||defined(_M_X64))
- #include
-#endif
-
-#if defined(_CPPUNWIND) || defined(__EXCEPTIONS)
- #define EIGEN_EXCEPTIONS
-#endif
-
-#ifdef EIGEN_EXCEPTIONS
- #include
-#endif
-
-/** \brief Namespace containing all symbols from the %Eigen library. */
-namespace Eigen {
-
-inline static const char *SimdInstructionSetsInUse(void) {
-#if defined(EIGEN_VECTORIZE_SSE4_2)
- return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
-#elif defined(EIGEN_VECTORIZE_SSE4_1)
- return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
-#elif defined(EIGEN_VECTORIZE_SSSE3)
- return "SSE, SSE2, SSE3, SSSE3";
-#elif defined(EIGEN_VECTORIZE_SSE3)
- return "SSE, SSE2, SSE3";
-#elif defined(EIGEN_VECTORIZE_SSE2)
- return "SSE, SSE2";
-#elif defined(EIGEN_VECTORIZE_ALTIVEC)
- return "AltiVec";
-#elif defined(EIGEN_VECTORIZE_NEON)
- return "ARM NEON";
-#else
- return "None";
-#endif
-}
-
-} // end namespace Eigen
-
-#define STAGE10_FULL_EIGEN2_API 10
-#define STAGE20_RESOLVE_API_CONFLICTS 20
-#define STAGE30_FULL_EIGEN3_API 30
-#define STAGE40_FULL_EIGEN3_STRICTNESS 40
-#define STAGE99_NO_EIGEN2_SUPPORT 99
-
-#if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS
- #define EIGEN2_SUPPORT
- #define EIGEN2_SUPPORT_STAGE STAGE40_FULL_EIGEN3_STRICTNESS
-#elif defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
- #define EIGEN2_SUPPORT
- #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
-#elif defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS
- #define EIGEN2_SUPPORT
- #define EIGEN2_SUPPORT_STAGE STAGE20_RESOLVE_API_CONFLICTS
-#elif defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API
- #define EIGEN2_SUPPORT
- #define EIGEN2_SUPPORT_STAGE STAGE10_FULL_EIGEN2_API
-#elif defined EIGEN2_SUPPORT
- // default to stage 3, that's what it's always meant
- #define EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API
- #define EIGEN2_SUPPORT_STAGE STAGE30_FULL_EIGEN3_API
-#else
- #define EIGEN2_SUPPORT_STAGE STAGE99_NO_EIGEN2_SUPPORT
-#endif
-
-#ifdef EIGEN2_SUPPORT
-#undef minor
-#endif
-
-// we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
-// ensure QNX/QCC support
-using std::size_t;
-// gcc 4.6.0 wants std:: for ptrdiff_t
-using std::ptrdiff_t;
-
-/** \defgroup Core_Module Core module
- * This is the main module of Eigen providing dense matrix and vector support
- * (both fixed and dynamic size) with all the features corresponding to a BLAS library
- * and much more...
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/Core/util/Constants.h"
-#include "src/Core/util/ForwardDeclarations.h"
-#include "src/Core/util/Meta.h"
-#include "src/Core/util/StaticAssert.h"
-#include "src/Core/util/XprHelper.h"
-#include "src/Core/util/Memory.h"
-
-#include "src/Core/NumTraits.h"
-#include "src/Core/MathFunctions.h"
-#include "src/Core/GenericPacketMath.h"
-
-#if defined EIGEN_VECTORIZE_SSE
- #include "src/Core/arch/SSE/PacketMath.h"
- #include "src/Core/arch/SSE/MathFunctions.h"
- #include "src/Core/arch/SSE/Complex.h"
-#elif defined EIGEN_VECTORIZE_ALTIVEC
- #include "src/Core/arch/AltiVec/PacketMath.h"
- #include "src/Core/arch/AltiVec/Complex.h"
-#elif defined EIGEN_VECTORIZE_NEON
- #include "src/Core/arch/NEON/PacketMath.h"
- #include "src/Core/arch/NEON/Complex.h"
-#endif
-
-#include "src/Core/arch/Default/Settings.h"
-
-#include "src/Core/Functors.h"
-#include "src/Core/DenseCoeffsBase.h"
-#include "src/Core/DenseBase.h"
-#include "src/Core/MatrixBase.h"
-#include "src/Core/EigenBase.h"
-
-#ifndef EIGEN_PARSED_BY_DOXYGEN // work around Doxygen bug triggered by Assign.h r814874
- // at least confirmed with Doxygen 1.5.5 and 1.5.6
- #include "src/Core/Assign.h"
-#endif
-
-#include "src/Core/util/BlasUtil.h"
-#include "src/Core/DenseStorage.h"
-#include "src/Core/NestByValue.h"
-#include "src/Core/ForceAlignedAccess.h"
-#include "src/Core/ReturnByValue.h"
-#include "src/Core/NoAlias.h"
-#include "src/Core/PlainObjectBase.h"
-#include "src/Core/Matrix.h"
-#include "src/Core/Array.h"
-#include "src/Core/CwiseBinaryOp.h"
-#include "src/Core/CwiseUnaryOp.h"
-#include "src/Core/CwiseNullaryOp.h"
-#include "src/Core/CwiseUnaryView.h"
-#include "src/Core/SelfCwiseBinaryOp.h"
-#include "src/Core/Dot.h"
-#include "src/Core/StableNorm.h"
-#include "src/Core/MapBase.h"
-#include "src/Core/Stride.h"
-#include "src/Core/Map.h"
-#include "src/Core/Block.h"
-#include "src/Core/VectorBlock.h"
-#include "src/Core/Ref.h"
-#include "src/Core/Transpose.h"
-#include "src/Core/DiagonalMatrix.h"
-#include "src/Core/Diagonal.h"
-#include "src/Core/DiagonalProduct.h"
-#include "src/Core/PermutationMatrix.h"
-#include "src/Core/Transpositions.h"
-#include "src/Core/Redux.h"
-#include "src/Core/Visitor.h"
-#include "src/Core/Fuzzy.h"
-#include "src/Core/IO.h"
-#include "src/Core/Swap.h"
-#include "src/Core/CommaInitializer.h"
-#include "src/Core/Flagged.h"
-#include "src/Core/ProductBase.h"
-#include "src/Core/GeneralProduct.h"
-#include "src/Core/TriangularMatrix.h"
-#include "src/Core/SelfAdjointView.h"
-#include "src/Core/products/GeneralBlockPanelKernel.h"
-#include "src/Core/products/Parallelizer.h"
-#include "src/Core/products/CoeffBasedProduct.h"
-#include "src/Core/products/GeneralMatrixVector.h"
-#include "src/Core/products/GeneralMatrixMatrix.h"
-#include "src/Core/SolveTriangular.h"
-#include "src/Core/products/GeneralMatrixMatrixTriangular.h"
-#include "src/Core/products/SelfadjointMatrixVector.h"
-#include "src/Core/products/SelfadjointMatrixMatrix.h"
-#include "src/Core/products/SelfadjointProduct.h"
-#include "src/Core/products/SelfadjointRank2Update.h"
-#include "src/Core/products/TriangularMatrixVector.h"
-#include "src/Core/products/TriangularMatrixMatrix.h"
-#include "src/Core/products/TriangularSolverMatrix.h"
-#include "src/Core/products/TriangularSolverVector.h"
-#include "src/Core/BandMatrix.h"
-#include "src/Core/CoreIterators.h"
-
-#include "src/Core/BooleanRedux.h"
-#include "src/Core/Select.h"
-#include "src/Core/VectorwiseOp.h"
-#include "src/Core/Random.h"
-#include "src/Core/Replicate.h"
-#include "src/Core/Reverse.h"
-#include "src/Core/ArrayBase.h"
-#include "src/Core/ArrayWrapper.h"
-
-#ifdef EIGEN_USE_BLAS
-#include "src/Core/products/GeneralMatrixMatrix_MKL.h"
-#include "src/Core/products/GeneralMatrixVector_MKL.h"
-#include "src/Core/products/GeneralMatrixMatrixTriangular_MKL.h"
-#include "src/Core/products/SelfadjointMatrixMatrix_MKL.h"
-#include "src/Core/products/SelfadjointMatrixVector_MKL.h"
-#include "src/Core/products/TriangularMatrixMatrix_MKL.h"
-#include "src/Core/products/TriangularMatrixVector_MKL.h"
-#include "src/Core/products/TriangularSolverMatrix_MKL.h"
-#endif // EIGEN_USE_BLAS
-
-#ifdef EIGEN_USE_MKL_VML
-#include "src/Core/Assign_MKL.h"
-#endif
-
-#include "src/Core/GlobalFunctions.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#ifdef EIGEN2_SUPPORT
-#include "Eigen2Support"
-#endif
-
-#endif // EIGEN_CORE_H
diff --git a/DNASim/deps/Eigen/Dense b/DNASim/deps/Eigen/Dense
deleted file mode 100644
index 5768910..0000000
--- a/DNASim/deps/Eigen/Dense
+++ /dev/null
@@ -1,7 +0,0 @@
-#include "Core"
-#include "LU"
-#include "Cholesky"
-#include "QR"
-#include "SVD"
-#include "Geometry"
-#include "Eigenvalues"
diff --git a/DNASim/deps/Eigen/Eigen b/DNASim/deps/Eigen/Eigen
deleted file mode 100644
index 19b40ea..0000000
--- a/DNASim/deps/Eigen/Eigen
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "Dense"
-//#include "Sparse"
diff --git a/DNASim/deps/Eigen/Eigen2Support b/DNASim/deps/Eigen/Eigen2Support
deleted file mode 100644
index 6aa009d..0000000
--- a/DNASim/deps/Eigen/Eigen2Support
+++ /dev/null
@@ -1,95 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2009 Gael Guennebaud
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN2SUPPORT_H
-#define EIGEN2SUPPORT_H
-
-#if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H))
-#error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header
-#endif
-
-#ifndef EIGEN_NO_EIGEN2_DEPRECATED_WARNING
-
-#if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
-#warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
-#else
-#pragma message ("Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)")
-#endif
-
-#endif // EIGEN_NO_EIGEN2_DEPRECATED_WARNING
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \ingroup Support_modules
- * \defgroup Eigen2Support_Module Eigen2 support module
- *
- * \warning Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3.
- *
- * This module provides a couple of deprecated functions improving the compatibility with Eigen2.
- *
- * To use it, define EIGEN2_SUPPORT before including any Eigen header
- * \code
- * #define EIGEN2_SUPPORT
- * \endcode
- *
- */
-
-#include "src/Eigen2Support/Macros.h"
-#include "src/Eigen2Support/Memory.h"
-#include "src/Eigen2Support/Meta.h"
-#include "src/Eigen2Support/Lazy.h"
-#include "src/Eigen2Support/Cwise.h"
-#include "src/Eigen2Support/CwiseOperators.h"
-#include "src/Eigen2Support/TriangularSolver.h"
-#include "src/Eigen2Support/Block.h"
-#include "src/Eigen2Support/VectorBlock.h"
-#include "src/Eigen2Support/Minor.h"
-#include "src/Eigen2Support/MathFunctions.h"
-
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-// Eigen2 used to include iostream
-#include
-
-#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \
-using Eigen::Matrix##SizeSuffix##TypeSuffix; \
-using Eigen::Vector##SizeSuffix##TypeSuffix; \
-using Eigen::RowVector##SizeSuffix##TypeSuffix;
-
-#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \
-
-#define EIGEN_USING_MATRIX_TYPEDEFS \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \
-EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd)
-
-#define USING_PART_OF_NAMESPACE_EIGEN \
-EIGEN_USING_MATRIX_TYPEDEFS \
-using Eigen::Matrix; \
-using Eigen::MatrixBase; \
-using Eigen::ei_random; \
-using Eigen::ei_real; \
-using Eigen::ei_imag; \
-using Eigen::ei_conj; \
-using Eigen::ei_abs; \
-using Eigen::ei_abs2; \
-using Eigen::ei_sqrt; \
-using Eigen::ei_exp; \
-using Eigen::ei_log; \
-using Eigen::ei_sin; \
-using Eigen::ei_cos;
-
-#endif // EIGEN2SUPPORT_H
diff --git a/DNASim/deps/Eigen/Eigenvalues b/DNASim/deps/Eigen/Eigenvalues
deleted file mode 100644
index 53c5a73..0000000
--- a/DNASim/deps/Eigen/Eigenvalues
+++ /dev/null
@@ -1,48 +0,0 @@
-#ifndef EIGEN_EIGENVALUES_MODULE_H
-#define EIGEN_EIGENVALUES_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "Cholesky"
-#include "Jacobi"
-#include "Householder"
-#include "LU"
-#include "Geometry"
-
-/** \defgroup Eigenvalues_Module Eigenvalues module
- *
- *
- *
- * This module mainly provides various eigenvalue solvers.
- * This module also provides some MatrixBase methods, including:
- * - MatrixBase::eigenvalues(),
- * - MatrixBase::operatorNorm()
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/Eigenvalues/Tridiagonalization.h"
-#include "src/Eigenvalues/RealSchur.h"
-#include "src/Eigenvalues/EigenSolver.h"
-#include "src/Eigenvalues/SelfAdjointEigenSolver.h"
-#include "src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h"
-#include "src/Eigenvalues/HessenbergDecomposition.h"
-#include "src/Eigenvalues/ComplexSchur.h"
-#include "src/Eigenvalues/ComplexEigenSolver.h"
-#include "src/Eigenvalues/RealQZ.h"
-#include "src/Eigenvalues/GeneralizedEigenSolver.h"
-#include "src/Eigenvalues/MatrixBaseEigenvalues.h"
-#ifdef EIGEN_USE_LAPACKE
-#include "src/Eigenvalues/RealSchur_MKL.h"
-#include "src/Eigenvalues/ComplexSchur_MKL.h"
-#include "src/Eigenvalues/SelfAdjointEigenSolver_MKL.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_EIGENVALUES_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/Geometry b/DNASim/deps/Eigen/Geometry
deleted file mode 100644
index efd9d45..0000000
--- a/DNASim/deps/Eigen/Geometry
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef EIGEN_GEOMETRY_MODULE_H
-#define EIGEN_GEOMETRY_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "SVD"
-#include "LU"
-#include
-
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-/** \defgroup Geometry_Module Geometry module
- *
- *
- *
- * This module provides support for:
- * - fixed-size homogeneous transformations
- * - translation, scaling, 2D and 3D rotations
- * - quaternions
- * - \ref MatrixBase::cross() "cross product"
- * - \ref MatrixBase::unitOrthogonal() "orthognal vector generation"
- * - some linear components: parametrized-lines and hyperplanes
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/Geometry/OrthoMethods.h"
-#include "src/Geometry/EulerAngles.h"
-
-#if EIGEN2_SUPPORT_STAGE > STAGE20_RESOLVE_API_CONFLICTS
- #include "src/Geometry/Homogeneous.h"
- #include "src/Geometry/RotationBase.h"
- #include "src/Geometry/Rotation2D.h"
- #include "src/Geometry/Quaternion.h"
- #include "src/Geometry/AngleAxis.h"
- #include "src/Geometry/Transform.h"
- #include "src/Geometry/Translation.h"
- #include "src/Geometry/Scaling.h"
- #include "src/Geometry/Hyperplane.h"
- #include "src/Geometry/ParametrizedLine.h"
- #include "src/Geometry/AlignedBox.h"
- #include "src/Geometry/Umeyama.h"
-
- #if defined EIGEN_VECTORIZE_SSE
- #include "src/Geometry/arch/Geometry_SSE.h"
- #endif
-#endif
-
-#ifdef EIGEN2_SUPPORT
-#include "src/Eigen2Support/Geometry/All.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_GEOMETRY_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
-
diff --git a/DNASim/deps/Eigen/Householder b/DNASim/deps/Eigen/Householder
deleted file mode 100644
index 6e348db..0000000
--- a/DNASim/deps/Eigen/Householder
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef EIGEN_HOUSEHOLDER_MODULE_H
-#define EIGEN_HOUSEHOLDER_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup Householder_Module Householder module
- * This module provides Householder transformations.
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/Householder/Householder.h"
-#include "src/Householder/HouseholderSequence.h"
-#include "src/Householder/BlockHouseholder.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_HOUSEHOLDER_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/IterativeLinearSolvers b/DNASim/deps/Eigen/IterativeLinearSolvers
deleted file mode 100644
index 0f4159d..0000000
--- a/DNASim/deps/Eigen/IterativeLinearSolvers
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
-#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
-
-#include "SparseCore"
-#include "OrderingMethods"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/**
- * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
- *
- * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse.
- * Those solvers are accessible via the following classes:
- * - ConjugateGradient for selfadjoint (hermitian) matrices,
- * - BiCGSTAB for general square matrices.
- *
- * These iterative solvers are associated with some preconditioners:
- * - IdentityPreconditioner - not really useful
- * - DiagonalPreconditioner - also called JAcobi preconditioner, work very well on diagonal dominant matrices.
- * - IncompleteILUT - incomplete LU factorization with dual thresholding
- *
- * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
-#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
-#include "src/IterativeLinearSolvers/ConjugateGradient.h"
-#include "src/IterativeLinearSolvers/BiCGSTAB.h"
-#include "src/IterativeLinearSolvers/IncompleteLUT.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
diff --git a/DNASim/deps/Eigen/Jacobi b/DNASim/deps/Eigen/Jacobi
deleted file mode 100644
index ba8a4dc..0000000
--- a/DNASim/deps/Eigen/Jacobi
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef EIGEN_JACOBI_MODULE_H
-#define EIGEN_JACOBI_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup Jacobi_Module Jacobi module
- * This module provides Jacobi and Givens rotations.
- *
- * \code
- * #include
- * \endcode
- *
- * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation:
- * - MatrixBase::applyOnTheLeft()
- * - MatrixBase::applyOnTheRight().
- */
-
-#include "src/Jacobi/Jacobi.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_JACOBI_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
-
diff --git a/DNASim/deps/Eigen/LU b/DNASim/deps/Eigen/LU
deleted file mode 100644
index db57955..0000000
--- a/DNASim/deps/Eigen/LU
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef EIGEN_LU_MODULE_H
-#define EIGEN_LU_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup LU_Module LU module
- * This module includes %LU decomposition and related notions such as matrix inversion and determinant.
- * This module defines the following MatrixBase methods:
- * - MatrixBase::inverse()
- * - MatrixBase::determinant()
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/misc/Solve.h"
-#include "src/misc/Kernel.h"
-#include "src/misc/Image.h"
-#include "src/LU/FullPivLU.h"
-#include "src/LU/PartialPivLU.h"
-#ifdef EIGEN_USE_LAPACKE
-#include "src/LU/PartialPivLU_MKL.h"
-#endif
-#include "src/LU/Determinant.h"
-#include "src/LU/Inverse.h"
-
-#if defined EIGEN_VECTORIZE_SSE
- #include "src/LU/arch/Inverse_SSE.h"
-#endif
-
-#ifdef EIGEN2_SUPPORT
- #include "src/Eigen2Support/LU.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_LU_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/LeastSquares b/DNASim/deps/Eigen/LeastSquares
deleted file mode 100644
index 35137c2..0000000
--- a/DNASim/deps/Eigen/LeastSquares
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef EIGEN_REGRESSION_MODULE_H
-#define EIGEN_REGRESSION_MODULE_H
-
-#ifndef EIGEN2_SUPPORT
-#error LeastSquares is only available in Eigen2 support mode (define EIGEN2_SUPPORT)
-#endif
-
-// exclude from normal eigen3-only documentation
-#ifdef EIGEN2_SUPPORT
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "Eigenvalues"
-#include "Geometry"
-
-/** \defgroup LeastSquares_Module LeastSquares module
- * This module provides linear regression and related features.
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/Eigen2Support/LeastSquares.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN2_SUPPORT
-
-#endif // EIGEN_REGRESSION_MODULE_H
diff --git a/DNASim/deps/Eigen/MetisSupport b/DNASim/deps/Eigen/MetisSupport
deleted file mode 100644
index 6a113f7..0000000
--- a/DNASim/deps/Eigen/MetisSupport
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifndef EIGEN_METISSUPPORT_MODULE_H
-#define EIGEN_METISSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-extern "C" {
-#include
-}
-
-
-/** \ingroup Support_modules
- * \defgroup MetisSupport_Module MetisSupport module
- *
- * \code
- * #include
- * \endcode
- * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis).
- * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
- */
-
-
-#include "src/MetisSupport/MetisSupport.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_METISSUPPORT_MODULE_H
diff --git a/DNASim/deps/Eigen/OrderingMethods b/DNASim/deps/Eigen/OrderingMethods
deleted file mode 100644
index 7c0f1ff..0000000
--- a/DNASim/deps/Eigen/OrderingMethods
+++ /dev/null
@@ -1,66 +0,0 @@
-#ifndef EIGEN_ORDERINGMETHODS_MODULE_H
-#define EIGEN_ORDERINGMETHODS_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/**
- * \defgroup OrderingMethods_Module OrderingMethods module
- *
- * This module is currently for internal use only
- *
- * It defines various built-in and external ordering methods for sparse matrices.
- * They are typically used to reduce the number of elements during
- * the sparse matrix decomposition (LLT, LU, QR).
- * Precisely, in a preprocessing step, a permutation matrix P is computed using
- * those ordering methods and applied to the columns of the matrix.
- * Using for instance the sparse Cholesky decomposition, it is expected that
- * the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).
- *
- *
- * Usage :
- * \code
- * #include
- * \endcode
- *
- * A simple usage is as a template parameter in the sparse decomposition classes :
- *
- * \code
- * SparseLU > solver;
- * \endcode
- *
- * \code
- * SparseQR > solver;
- * \endcode
- *
- * It is possible as well to call directly a particular ordering method for your own purpose,
- * \code
- * AMDOrdering ordering;
- * PermutationMatrix perm;
- * SparseMatrix A;
- * //Fill the matrix ...
- *
- * ordering(A, perm); // Call AMD
- * \endcode
- *
- * \note Some of these methods (like AMD or METIS), need the sparsity pattern
- * of the input matrix to be symmetric. When the matrix is structurally unsymmetric,
- * Eigen computes internally the pattern of \f$A^T*A\f$ before calling the method.
- * If your matrix is already symmetric (at leat in structure), you can avoid that
- * by calling the method with a SelfAdjointView type.
- *
- * \code
- * // Call the ordering on the pattern of the lower triangular matrix A
- * ordering(A.selfadjointView(), perm);
- * \endcode
- */
-
-#ifndef EIGEN_MPL2_ONLY
-#include "src/OrderingMethods/Amd.h"
-#endif
-
-#include "src/OrderingMethods/Ordering.h"
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_ORDERINGMETHODS_MODULE_H
diff --git a/DNASim/deps/Eigen/PaStiXSupport b/DNASim/deps/Eigen/PaStiXSupport
deleted file mode 100644
index 7c616ee..0000000
--- a/DNASim/deps/Eigen/PaStiXSupport
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
-#define EIGEN_PASTIXSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include
-extern "C" {
-#include
-#include
-}
-
-#ifdef complex
-#undef complex
-#endif
-
-/** \ingroup Support_modules
- * \defgroup PaStiXSupport_Module PaStiXSupport module
- *
- * This module provides an interface to the PaSTiX library.
- * PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
- * It provides the two following main factorization classes:
- * - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
- * - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
- * - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
- *
- * \code
- * #include
- * \endcode
- *
- * In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
- * The dependencies depend on how PaSTiX has been compiled.
- * For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
- *
- */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-
-#include "src/PaStiXSupport/PaStiXSupport.h"
-
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_PASTIXSUPPORT_MODULE_H
diff --git a/DNASim/deps/Eigen/PardisoSupport b/DNASim/deps/Eigen/PardisoSupport
deleted file mode 100644
index 99330ce..0000000
--- a/DNASim/deps/Eigen/PardisoSupport
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef EIGEN_PARDISOSUPPORT_MODULE_H
-#define EIGEN_PARDISOSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include
-
-#include
-
-/** \ingroup Support_modules
- * \defgroup PardisoSupport_Module PardisoSupport module
- *
- * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
- *
- * \code
- * #include
- * \endcode
- *
- * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies.
- * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
- *
- */
-
-#include "src/PardisoSupport/PardisoSupport.h"
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_PARDISOSUPPORT_MODULE_H
diff --git a/DNASim/deps/Eigen/QR b/DNASim/deps/Eigen/QR
deleted file mode 100644
index ac5b026..0000000
--- a/DNASim/deps/Eigen/QR
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef EIGEN_QR_MODULE_H
-#define EIGEN_QR_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "Cholesky"
-#include "Jacobi"
-#include "Householder"
-
-/** \defgroup QR_Module QR module
- *
- *
- *
- * This module provides various QR decompositions
- * This module also provides some MatrixBase methods, including:
- * - MatrixBase::qr(),
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/misc/Solve.h"
-#include "src/QR/HouseholderQR.h"
-#include "src/QR/FullPivHouseholderQR.h"
-#include "src/QR/ColPivHouseholderQR.h"
-#ifdef EIGEN_USE_LAPACKE
-#include "src/QR/HouseholderQR_MKL.h"
-#include "src/QR/ColPivHouseholderQR_MKL.h"
-#endif
-
-#ifdef EIGEN2_SUPPORT
-#include "src/Eigen2Support/QR.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#ifdef EIGEN2_SUPPORT
-#include "Eigenvalues"
-#endif
-
-#endif // EIGEN_QR_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/QtAlignedMalloc b/DNASim/deps/Eigen/QtAlignedMalloc
deleted file mode 100644
index 46f7d83..0000000
--- a/DNASim/deps/Eigen/QtAlignedMalloc
+++ /dev/null
@@ -1,34 +0,0 @@
-
-#ifndef EIGEN_QTMALLOC_MODULE_H
-#define EIGEN_QTMALLOC_MODULE_H
-
-#include "Core"
-
-#if (!EIGEN_MALLOC_ALREADY_ALIGNED)
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-void *qMalloc(size_t size)
-{
- return Eigen::internal::aligned_malloc(size);
-}
-
-void qFree(void *ptr)
-{
- Eigen::internal::aligned_free(ptr);
-}
-
-void *qRealloc(void *ptr, size_t size)
-{
- void* newPtr = Eigen::internal::aligned_malloc(size);
- memcpy(newPtr, ptr, size);
- Eigen::internal::aligned_free(ptr);
- return newPtr;
-}
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif
-
-#endif // EIGEN_QTMALLOC_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/SPQRSupport b/DNASim/deps/Eigen/SPQRSupport
deleted file mode 100644
index 7701644..0000000
--- a/DNASim/deps/Eigen/SPQRSupport
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef EIGEN_SPQRSUPPORT_MODULE_H
-#define EIGEN_SPQRSUPPORT_MODULE_H
-
-#include "SparseCore"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include "SuiteSparseQR.hpp"
-
-/** \ingroup Support_modules
- * \defgroup SPQRSupport_Module SuiteSparseQR module
- *
- * This module provides an interface to the SPQR library, which is part of the suitesparse package.
- *
- * \code
- * #include
- * \endcode
- *
- * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
- * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
- *
- */
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-#include "src/CholmodSupport/CholmodSupport.h"
-#include "src/SPQRSupport/SuiteSparseQRSupport.h"
-
-#endif
diff --git a/DNASim/deps/Eigen/SVD b/DNASim/deps/Eigen/SVD
deleted file mode 100644
index fd31001..0000000
--- a/DNASim/deps/Eigen/SVD
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef EIGEN_SVD_MODULE_H
-#define EIGEN_SVD_MODULE_H
-
-#include "QR"
-#include "Householder"
-#include "Jacobi"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/** \defgroup SVD_Module SVD module
- *
- *
- *
- * This module provides SVD decomposition for matrices (both real and complex).
- * This decomposition is accessible via the following MatrixBase method:
- * - MatrixBase::jacobiSvd()
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "src/misc/Solve.h"
-#include "src/SVD/JacobiSVD.h"
-#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
-#include "src/SVD/JacobiSVD_MKL.h"
-#endif
-#include "src/SVD/UpperBidiagonalization.h"
-
-#ifdef EIGEN2_SUPPORT
-#include "src/Eigen2Support/SVD.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_SVD_MODULE_H
-/* vim: set filetype=cpp et sw=2 ts=2 ai: */
diff --git a/DNASim/deps/Eigen/Sparse b/DNASim/deps/Eigen/Sparse
deleted file mode 100644
index 7cc9c09..0000000
--- a/DNASim/deps/Eigen/Sparse
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef EIGEN_SPARSE_MODULE_H
-#define EIGEN_SPARSE_MODULE_H
-
-/** \defgroup Sparse_Module Sparse meta-module
- *
- * Meta-module including all related modules:
- * - \ref SparseCore_Module
- * - \ref OrderingMethods_Module
- * - \ref SparseCholesky_Module
- * - \ref SparseLU_Module
- * - \ref SparseQR_Module
- * - \ref IterativeLinearSolvers_Module
- *
- * \code
- * #include
- * \endcode
- */
-
-#include "SparseCore"
-#include "OrderingMethods"
-#include "SparseCholesky"
-#include "SparseLU"
-#include "SparseQR"
-#include "IterativeLinearSolvers"
-
-#endif // EIGEN_SPARSE_MODULE_H
-
diff --git a/DNASim/deps/Eigen/SparseCholesky b/DNASim/deps/Eigen/SparseCholesky
deleted file mode 100644
index 9f5056a..0000000
--- a/DNASim/deps/Eigen/SparseCholesky
+++ /dev/null
@@ -1,47 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2008-2013 Gael Guennebaud
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
-#define EIGEN_SPARSECHOLESKY_MODULE_H
-
-#include "SparseCore"
-#include "OrderingMethods"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-/**
- * \defgroup SparseCholesky_Module SparseCholesky module
- *
- * This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
- * Those decompositions are accessible via the following classes:
- * - SimplicialLLt,
- * - SimplicialLDLt
- *
- * Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
- *
- * \code
- * #include
- * \endcode
- */
-
-#ifdef EIGEN_MPL2_ONLY
-#error The SparseCholesky module has nothing to offer in MPL2 only mode
-#endif
-
-#include "src/misc/Solve.h"
-#include "src/misc/SparseSolve.h"
-#include "src/SparseCholesky/SimplicialCholesky.h"
-
-#ifndef EIGEN_MPL2_ONLY
-#include "src/SparseCholesky/SimplicialCholesky_impl.h"
-#endif
-
-#include "src/Core/util/ReenableStupidWarnings.h"
-
-#endif // EIGEN_SPARSECHOLESKY_MODULE_H
diff --git a/DNASim/deps/Eigen/SparseCore b/DNASim/deps/Eigen/SparseCore
deleted file mode 100644
index 9b5be5e..0000000
--- a/DNASim/deps/Eigen/SparseCore
+++ /dev/null
@@ -1,64 +0,0 @@
-#ifndef EIGEN_SPARSECORE_MODULE_H
-#define EIGEN_SPARSECORE_MODULE_H
-
-#include "Core"
-
-#include "src/Core/util/DisableStupidWarnings.h"
-
-#include
-#include