Commit 18f74232 authored by David Cazier's avatar David Cazier
Browse files

Merge cgogn:~cgogn/CGoGN

parents 9b375901 333cfee2
...@@ -81,10 +81,10 @@ add_executable( tuto_subdivision tuto_subdivision.cpp) ...@@ -81,10 +81,10 @@ add_executable( tuto_subdivision tuto_subdivision.cpp)
target_link_libraries( tuto_subdivision target_link_libraries( tuto_subdivision
${CGoGN_LIBS_D} ${CGoGN_EXT_LIBS} ) ${CGoGN_LIBS_D} ${CGoGN_EXT_LIBS} )
QT4_WRAP_CPP(tp_master_moc tp_master.h) #QT4_WRAP_CPP(tp_master_moc tp_master.h)
add_executable( tp_master tp_master.cpp ${tp_master_moc}) #add_executable( tp_master tp_master.cpp ${tp_master_moc})
target_link_libraries( tp_master #target_link_libraries( tp_master
${CGoGN_LIBS_D} ${CGoGN_EXT_LIBS} ) # ${CGoGN_LIBS_D} ${CGoGN_EXT_LIBS} )
QT4_WRAP_CPP(tuto_histo_moc tuto_histo.h) QT4_WRAP_CPP(tuto_histo_moc tuto_histo.h)
add_executable( tuto_histo tuto_histo.cpp tuto_histo.h ${tuto_histo_ui} ${tuto_histo_moc}) add_executable( tuto_histo tuto_histo.cpp tuto_histo.h ${tuto_histo_ui} ${tuto_histo_moc})
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
#include "Algo/Modelisation/polyhedron.h" #include "Algo/Modelisation/polyhedron.h"
#include "Algo/Parallel/parallel_foreach.h" #include "Algo/Parallel/parallel_foreach.h"
#include "Algo/Parallel/cgogn_thread.h"
#include "Utils/cgognStream.h" #include "Utils/cgognStream.h"
#include "Utils/chrono.h" #include "Utils/chrono.h"
...@@ -63,28 +63,6 @@ VertexAttribute<PFP::VEC3> normal; ...@@ -63,28 +63,6 @@ VertexAttribute<PFP::VEC3> normal;
template <typename XXX>
class ThreadNormals: public Algo::Parallel::CGoGNThread<typename XXX::MAP>
{
protected:
VertexAttribute<typename XXX::VEC3>& m_positions;
VertexAttribute<typename XXX::VEC3>& m_normals;
public:
ThreadNormals(typename XXX::MAP& map, VertexAttribute<typename XXX::VEC3>& pos, VertexAttribute<typename XXX::VEC3>& norm, unsigned int th):
Algo::Parallel::CGoGNThread<typename XXX::MAP>(map,th),
m_positions(pos),
m_normals(norm)
{}
void operator()()
{
Algo::Geometry::computeNormalVertices<XXX>(this->m_map, m_positions, m_normals, SelectorTrue(), this->tid());
}
};
void MyQT::cb_initGL() void MyQT::cb_initGL()
{ {
Utils::GLSLShader::setCurrentOGLVersion(2); Utils::GLSLShader::setCurrentOGLVersion(2);
...@@ -109,9 +87,7 @@ void MyQT::cb_initGL() ...@@ -109,9 +87,7 @@ void MyQT::cb_initGL()
m_lines->setScale(2.0f); m_lines->setScale(2.0f);
m_lines->setColor(Geom::Vec4f(0.0f, 1.0f, 0.2f, 0.0f)); m_lines->setColor(Geom::Vec4f(0.0f, 1.0f, 0.2f, 0.0f));
CGoGNout << "Je calcule les normales en meme temps que les primitives" << CGoGNendl; Algo::Geometry::computeNormalVertices<PFP>(myMap, position, normal) ;
boost::thread thread1( ThreadNormals<PFP>(myMap,position,normal,1));
m_render->initPrimitives<PFP>(myMap, allDarts, Algo::Render::GL2::LINES); m_render->initPrimitives<PFP>(myMap, allDarts, Algo::Render::GL2::LINES);
m_render->initPrimitives<PFP>(myMap, allDarts, Algo::Render::GL2::POINTS); m_render->initPrimitives<PFP>(myMap, allDarts, Algo::Render::GL2::POINTS);
...@@ -119,8 +95,6 @@ void MyQT::cb_initGL() ...@@ -119,8 +95,6 @@ void MyQT::cb_initGL()
registerShader(m_shader); registerShader(m_shader);
registerShader(m_lines); registerShader(m_lines);
// on attend la fin du thread pour etre sur que normal est a jour
thread1.join();
m_normalVBO->updateData(normal); m_normalVBO->updateData(normal);
} }
......
...@@ -16,9 +16,11 @@ SET ( WITH_ZINRI ON CACHE BOOL "build CGoGN with Zinri lib ") ...@@ -16,9 +16,11 @@ SET ( WITH_ZINRI ON CACHE BOOL "build CGoGN with Zinri lib ")
SET ( WITH_QT ON CACHE BOOL "build CGoGN with Qt lib ") SET ( WITH_QT ON CACHE BOOL "build CGoGN with Qt lib ")
SET ( WITH_NUMERICAL ON CACHE BOOL "build CGoGN with Numerical libs support ") SET ( WITH_NUMERICAL ON CACHE BOOL "build CGoGN with Numerical libs support ")
# for CGoGN MR # for CGoGN MR
SET ( FORCE_MR "2" CACHE STRING "0:none / 1 force multi / 2: force mono") SET ( FORCE_MR "0" CACHE STRING "0: normal mode / 1 multires mode")
#create one big lib #create one big lib
SET ( ONELIB OFF CACHE BOOL "build CGoGN in one lib") SET ( ONELIB OFF CACHE BOOL "build CGoGN in one lib")
SET ( WITH_GLEWMX OFF CACHE BOOL "use multi-contex GLEW")
IF(WIN32) IF(WIN32)
set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies") set(CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies")
...@@ -47,12 +49,6 @@ IF (FORCE_MR EQUAL 1) ...@@ -47,12 +49,6 @@ IF (FORCE_MR EQUAL 1)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_mr.h "1" ) file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_mr.h "1" )
ENDIF (FORCE_MR EQUAL 1) ENDIF (FORCE_MR EQUAL 1)
IF (FORCE_MR EQUAL 2)
add_definitions(-DCGoGN_FORCE_MR=2)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_mr.h "2" )
ENDIF (FORCE_MR EQUAL 2)
IF (ONELIB) IF (ONELIB)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_onelib.h "1" ) file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_onelib.h "1" )
...@@ -60,6 +56,15 @@ ELSE (ONELIB) ...@@ -60,6 +56,15 @@ ELSE (ONELIB)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_onelib.h "0" ) file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_onelib.h "0" )
ENDIF (ONELIB) ENDIF (ONELIB)
IF (WITH_GLEWMX)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_gmx.h "1" )
ELSE (WITH_GLEWMX)
file(WRITE ${CGoGN_ROOT_DIR}/include/cgogn_gmx.h "0" )
ENDIF (WITH_GLEWMX)
add_definitions(-DSHADERPATH="${CGoGN_ROOT_DIR}/lib/Shaders/") add_definitions(-DSHADERPATH="${CGoGN_ROOT_DIR}/lib/Shaders/")
# define includes of external libs # define includes of external libs
...@@ -106,6 +111,10 @@ IF (WITH_QT) ...@@ -106,6 +111,10 @@ IF (WITH_QT)
SET (CGoGN_EXT_LIBS ${CGoGN_EXT_LIBS} ${QT_LIBRARIES} ) SET (CGoGN_EXT_LIBS ${CGoGN_EXT_LIBS} ${QT_LIBRARIES} )
ENDIF (WITH_QT) ENDIF (WITH_QT)
IF (WITH_GLEWMX)
ADD_DEFINITIONS(-DGLEW_MX)
ENDIF (WITH_GLEWMX)
#IF (WITH_NUMERICAL) #IF (WITH_NUMERICAL)
# add_definitions(-DWITH_NUMERICAL) # add_definitions(-DWITH_NUMERICAL)
# SET (CGoGN_NUMERICAL_INCLUDES ${CGoGN_ROOT_DIR}/ThirdParty/Numerical ${CGoGN_ROOT_DIR}/ThirdParty/Numerical/UFconfig) # SET (CGoGN_NUMERICAL_INCLUDES ${CGoGN_ROOT_DIR}/ThirdParty/Numerical ${CGoGN_ROOT_DIR}/ThirdParty/Numerical/UFconfig)
...@@ -134,7 +143,7 @@ IF(WIN32) ...@@ -134,7 +143,7 @@ IF(WIN32)
set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Only Release or Debug" FORCE) set(CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Only Release or Debug" FORCE)
# set(CMAKE_CONFIGURATION_TYPES "Release Debug" CACHE STRING "Only Release or Debug" FORCE) # set(CMAKE_CONFIGURATION_TYPES "Release Debug" CACHE STRING "Only Release or Debug" FORCE)
ELSE(WIN32) ELSE(WIN32)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC")
add_subdirectory(Release) add_subdirectory(Release)
add_subdirectory(Debug) add_subdirectory(Debug)
add_subdirectory(${CGoGN_ROOT_DIR}/Apps Apps) add_subdirectory(${CGoGN_ROOT_DIR}/Apps Apps)
......
Dépendences Linux: Dépendences Linux:
installer les paquets suivants: installer les paquets suivants:
cmake libXi-dev libXmu-dev libglew-dev libxml2-dev libboost-all-dev zlib1g-dev qt4-designer qt4-dev-tools uuid-dev cmake libXi-dev libXmu-dev libglew-dev libxml2-dev libboost-all-dev zlib1g-dev qt4-designer qt4-dev-tools uuid-dev libgsl0-dev
Pour compiler CGoGN: Pour compiler CGoGN:
- aller dans ThirdParty, cd build, taper "cmake .", puis make ( avec -j x si vous avez x core sur votre machine) - aller dans ThirdParty, cd build, taper "cmake .", puis make ( avec -j x si vous avez x core sur votre machine)
......
Pour utiliser Eclipse (testé avec la version Helios, Galileo & Indigo) *** English version below ***
English version bellow
Pour utiliser Eclipse (testé avec la version Helios, Galileo, Indigo & Juno)
* Configurer un projet dans Eclipse : * Configurer un projet dans Eclipse :
- Faire un nouveau projet C++ - Faire un nouveau projet C++
- Choisir Makefile project -> Empty Project - Choisir Makefile project -> Empty Project
...@@ -31,8 +31,8 @@ Projet X -> Properties -> Project references : cocher le projet dont il dépend. ...@@ -31,8 +31,8 @@ Projet X -> Properties -> Project references : cocher le projet dont il dépend.
Afin d'éviter qu'Eclipse ne rejette les syntaxes Qt (les includes de Qt, les Q_OBJECT, les callbacks) : Afin d'éviter qu'Eclipse ne rejette les syntaxes Qt (les includes de Qt, les Q_OBJECT, les callbacks) :
- Télécharger le plugin Qt "eclipse-integration" http://qt.nokia.com/developer/eclipse-integration/ - Télécharger le plugin Qt "eclipse-integration" http://qt.nokia.com/developer/eclipse-integration/
- Décompresser l'archive et copier son contenu dans le répertoire d'installation d'Eclipse (plugins et features) - Décompresser l'archive et copier son contenu dans le répertoire d'installation d'Eclipse (plugins et features)
- Relancer Eclipse au moins une fois avec l'option --clean (relecture des répertoires locaux) - Relancer Eclipse au moins une fois avec l'option "-clean" (relecture des répertoires locaux)
Normalement, dans Window->Preferences de Eclipse, Qt apparait dans le menu. Normalement, dans Window --> Preferences de Eclipse, Qt apparait dans le menu.
- Y ajouter le répertoire de Qt (/usr/bin sur Debian/Ubuntu) et le répertoire d'include (/usr/include/qt4). - Y ajouter le répertoire de Qt (/usr/bin sur Debian/Ubuntu) et le répertoire d'include (/usr/include/qt4).
Ensuite, pour chaque projet, ajouter les includes suivants dans Properties -> C/C++ general -> Paths and Symbols Ensuite, pour chaque projet, ajouter les includes suivants dans Properties -> C/C++ general -> Paths and Symbols
parmi les includes de C++ : parmi les includes de C++ :
...@@ -63,7 +63,7 @@ Dans Preferences -> Shaders Preferences, on peut désormais configurer certaines ...@@ -63,7 +63,7 @@ Dans Preferences -> Shaders Preferences, on peut désormais configurer certaines
ENGLISH VERSION ENGLISH VERSION
========================================================================================= =========================================================================================
To use Eclipse (tested with version Helios, Galileo & Indigo) To use Eclipse (tested with version Helios, Galileoi, Indigo & Juno)
* Setting up a project in Eclipse: * Setting up a project in Eclipse:
- Make a new C + + project - Make a new C + + project
...@@ -84,18 +84,18 @@ In the project properties: ...@@ -84,18 +84,18 @@ In the project properties:
Tutorial: Build / Apps / Tutorial (compiles tutorials) Tutorial: Build / Apps / Tutorial (compiles tutorials)
etc. .. etc. ..
This added to the directory of CGoGN a .project. and .cproject files. This adds a .project. and .cproject files to the CGoGN directory.
* Inter-dependencies projects and autocompletion * Project inter-dependencies and autocompletion
If the project X depends on another project, then: If project X depends on another project, then:
Project X -> Properties -> Project references: check the project which it depends. Project X -> Properties -> Project references: check the project which it depends.
* Qt dependencies: * Qt dependencies:
To avoid Eclipse rejects the Qt syntax (the Qt includes the Q_OBJECT, callbacks): To avoid Eclipse rejecting the Qt syntax (includes, Q_OBJECT, callbacks):
- Download the Qt plugin "eclipse-integration" http://qt.nokia.com/developer/eclipse-integration/ - Download the Qt plugin "eclipse-integration" http://qt.nokia.com/developer/eclipse-integration/
- Unzip the archive and copy its contents into the installation directory of Eclipse (plugins and features) - Unzip the archive and copy its contents into the installation directory of Eclipse (plugins and features)
- Restart Eclipse at least once with the - clean (proofreading local directories) - Restart Eclipse at least once with the "-clean" (proofreading local directories)
Normally in Window-> Preferences of Eclipse, Qt appears in the menu. Normally in Window --> Preferences of Eclipse, Qt appears in the menu.
- Add the Qt directory (/ usr / bin on Debian / Ubuntu) and the directory include (/ usr/include/qt4). - Add the Qt directory (/ usr / bin on Debian / Ubuntu) and the directory include (/ usr/include/qt4).
Then, for each project, add the following includes in Properties -> C / C + + general -> Paths and Symbols Then, for each project, add the following includes in Properties -> C / C + + general -> Paths and Symbols
among the C + + includes: among the C + + includes:
......
...@@ -8,7 +8,7 @@ IF(WIN32) ...@@ -8,7 +8,7 @@ IF(WIN32)
SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib) SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib)
ELSE(WIN32) ELSE(WIN32)
SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib/Release) SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib/Release)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DNOTOPOWARNING") ADD_DEFINITIONS(-DNOTOPOWARNING)
ENDIF(WIN32) ENDIF(WIN32)
include_directories( include_directories(
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
#include "src/Core/util/DisableStupidWarnings.h" #include "src/Core/util/DisableStupidWarnings.h"
namespace Eigen {
/** \defgroup Cholesky_Module Cholesky module /** \defgroup Cholesky_Module Cholesky module
* *
* *
...@@ -24,8 +22,9 @@ namespace Eigen { ...@@ -24,8 +22,9 @@ namespace Eigen {
#include "src/misc/Solve.h" #include "src/misc/Solve.h"
#include "src/Cholesky/LLT.h" #include "src/Cholesky/LLT.h"
#include "src/Cholesky/LDLT.h" #include "src/Cholesky/LDLT.h"
#ifdef EIGEN_USE_LAPACKE
} // namespace Eigen #include "src/Cholesky/LLT_MKL.h"
#endif
#include "src/Core/util/ReenableStupidWarnings.h" #include "src/Core/util/ReenableStupidWarnings.h"
......
#ifndef EIGEN_CHOLMODSUPPORT_MODULE_H
#define EIGEN_CHOLMODSUPPORT_MODULE_H
#include "SparseCore"
#include "src/Core/util/DisableStupidWarnings.h"
extern "C" {
#include <cholmod.h>
}
/** \ingroup Support_modules
* \defgroup CholmodSupport_Module CholmodSupport module
*
* This module provides an interface to the Cholmod library which is part of the <a href="http://www.cise.ufl.edu/research/sparse/SuiteSparse/">suitesparse</a> 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 <Eigen/CholmodSupport>
* \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
...@@ -4,24 +4,9 @@ ...@@ -4,24 +4,9 @@
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr> // Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
// Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1@gmail.com> // Copyright (C) 2007-2011 Benoit Jacob <jacob.benoit.1@gmail.com>
// //
// Eigen is free software; you can redistribute it and/or // This Source Code Form is subject to the terms of the Mozilla
// modify it under the terms of the GNU Lesser General Public // Public License v. 2.0. If a copy of the MPL was not distributed
// License as published by the Free Software Foundation; either // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// version 3 of the License, or (at your option) any later version.
//
// Alternatively, you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// Eigen 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 or the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License and a copy of the GNU General Public License along with
// Eigen. If not, see <http://www.gnu.org/licenses/>.
#ifndef EIGEN_CORE_H #ifndef EIGEN_CORE_H
#define EIGEN_CORE_H #define EIGEN_CORE_H
...@@ -34,6 +19,12 @@ ...@@ -34,6 +19,12 @@
// defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization. // defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
#include "src/Core/util/Macros.h" #include "src/Core/util/Macros.h"
#include <complex>
// 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 // 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 // account both the user's will (EIGEN_DONT_ALIGN) and our own platform checks
#if !EIGEN_ALIGN #if !EIGEN_ALIGN
...@@ -136,7 +127,7 @@ ...@@ -136,7 +127,7 @@
#endif #endif
// MSVC for windows mobile does not have the errno.h file // MSVC for windows mobile does not have the errno.h file
#if !(defined(_MSC_VER) && defined(_WIN32_WCE)) #if !(defined(_MSC_VER) && defined(_WIN32_WCE)) && !defined(__ARMCC_VERSION)
#define EIGEN_HAS_ERRNO #define EIGEN_HAS_ERRNO
#endif #endif
...@@ -146,7 +137,6 @@ ...@@ -146,7 +137,6 @@
#include <cstddef> #include <cstddef>
#include <cstdlib> #include <cstdlib>
#include <cmath> #include <cmath>
#include <complex>
#include <cassert> #include <cassert>
#include <functional> #include <functional>
#include <iosfwd> #include <iosfwd>
...@@ -167,7 +157,7 @@ ...@@ -167,7 +157,7 @@
#include <intrin.h> #include <intrin.h>
#endif #endif
#if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(EIGEN_NO_EXCEPTIONS) #if defined(_CPPUNWIND) || defined(__EXCEPTIONS)
#define EIGEN_EXCEPTIONS #define EIGEN_EXCEPTIONS
#endif #endif
...@@ -175,9 +165,6 @@ ...@@ -175,9 +165,6 @@
#include <new> #include <new>
#endif #endif
// defined in bits/termios.h
#undef B0
/** \brief Namespace containing all symbols from the %Eigen library. */ /** \brief Namespace containing all symbols from the %Eigen library. */
namespace Eigen { namespace Eigen {
...@@ -201,6 +188,8 @@ inline static const char *SimdInstructionSetsInUse(void) { ...@@ -201,6 +188,8 @@ inline static const char *SimdInstructionSetsInUse(void) {
#endif #endif
} }
} // end namespace Eigen
#define STAGE10_FULL_EIGEN2_API 10 #define STAGE10_FULL_EIGEN2_API 10
#define STAGE20_RESOLVE_API_CONFLICTS 20 #define STAGE20_RESOLVE_API_CONFLICTS 20
#define STAGE30_FULL_EIGEN3_API 30 #define STAGE30_FULL_EIGEN3_API 30
...@@ -247,6 +236,10 @@ using std::ptrdiff_t; ...@@ -247,6 +236,10 @@ using std::ptrdiff_t;
* \endcode * \endcode
*/ */
/** \defgroup Support_modules Support modules [category]
* Category of modules which add support for external libraries.
*/
#include "src/Core/util/Constants.h" #include "src/Core/util/Constants.h"
#include "src/Core/util/ForwardDeclarations.h" #include "src/Core/util/ForwardDeclarations.h"
#include "src/Core/util/Meta.h" #include "src/Core/util/Meta.h"
...@@ -318,15 +311,15 @@ using std::ptrdiff_t; ...@@ -318,15 +311,15 @@ using std::ptrdiff_t;
#include "src/Core/CommaInitializer.h" #include "src/Core/CommaInitializer.h"
#include "src/Core/Flagged.h" #include "src/Core/Flagged.h"
#include "src/Core/ProductBase.h" #include "src/Core/ProductBase.h"
#include "src/Core/Product.h" #include "src/Core/GeneralProduct.h"
#include "src/Core/TriangularMatrix.h" #include "src/Core/TriangularMatrix.h"
#include "src/Core/SelfAdjointView.h" #include "src/Core/SelfAdjointView.h"
#include "src/Core/SolveTriangular.h" #include "src/Core/products/GeneralBlockPanelKernel.h"
#include "src/Core/products/Parallelizer.h" #include "src/Core/products/Parallelizer.h"
#include "src/Core/products/CoeffBasedProduct.h" #include "src/Core/products/CoeffBasedProduct.h"
#include "src/Core/products/GeneralBlockPanelKernel.h"
#include "src/Core/products/GeneralMatrixVector.h" #include "src/Core/products/GeneralMatrixVector.h"
#include "src/Core/products/GeneralMatrixMatrix.h" #include "src/Core/products/GeneralMatrixMatrix.h"
#include "src/Core/SolveTriangular.h"
#include "src/Core/products/GeneralMatrixMatrixTriangular.h" #include "src/Core/products/GeneralMatrixMatrixTriangular.h"
#include "src/Core/products/SelfadjointMatrixVector.h" #include "src/Core/products/SelfadjointMatrixVector.h"
#include "src/Core/products/SelfadjointMatrixMatrix.h" #include "src/Core/products/SelfadjointMatrixMatrix.h"
...@@ -347,7 +340,20 @@ using std::ptrdiff_t; ...@@ -347,7 +340,20 @@ using std::ptrdiff_t;
#include "src/Core/ArrayBase.h" #include "src/Core/ArrayBase.h"
#include "src/Core/ArrayWrapper.h" #include "src/Core/ArrayWrapper.h"
} // namespace Eigen #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/GlobalFunctions.h"
......
...@@ -3,24 +3,9 @@ ...@@ -3,24 +3,9 @@
// //
// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr> // Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
// //
// Eigen is free software; you can redistribute it and/or // This Source Code Form is subject to the terms of the Mozilla
// modify it under the terms of the GNU Lesser General Public // Public License v. 2.0. If a copy of the MPL was not distributed
// License as published by the Free Software Foundation; either // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// version 3 of the License, or (at your option) any later version.
//
// Alternatively, you can redistribute it and/or
// modify it under the terms of the GNU General Public License as
// published by the Free Software Foundation; either version 2 of
// the License, or (at your option) any later version.
//
// Eigen 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 or the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License and a copy of the GNU General Public License along with
// Eigen. If not, see <http://www.gnu.org/licenses/>.
#ifndef EIGEN2SUPPORT_H #ifndef EIGEN2SUPPORT_H
#define EIGEN2SUPPORT_H #define EIGEN2SUPPORT_H
...@@ -31,9 +16,8 @@ ...@@ -31,9 +16,8 @@
#include "src/Core/util/DisableStupidWarnings.h" #include "src/Core/util/DisableStupidWarnings.h"
namespace Eigen { /** \ingroup Support_modules
* \defgroup Eigen2Support_Module Eigen2 support module
/** \defgroup Eigen2Support_Module Eigen2 support module
* This module provides a couple of deprecated functions improving the compatibility with Eigen2. * This module provides a couple of deprecated functions improving the compatibility with Eigen2.
* *
* To use it, define EIGEN2_SUPPORT before including any Eigen header * To use it, define EIGEN2_SUPPORT before including any Eigen header
...@@ -56,13 +40,29 @@ namespace Eigen { ...@@ -56,13 +40,29 @@ namespace Eigen {
#include "src/Eigen2Support/MathFunctions.h" #include "src/Eigen2Support/MathFunctions.h"
} // namespace Eigen
#include "src/Core/util/ReenableStupidWarnings.h" #include "src/Core/util/ReenableStupidWarnings.h"
// Eigen2 used to include iostream // Eigen2 used to include iostream
#include<iostream> #include<iostream>
#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 \ #define USING_PART_OF_NAMESPACE_EIGEN \
EIGEN_USING_MATRIX_TYPEDEFS \ EIGEN_USING_MATRIX_TYPEDEFS \