1 // This file is part of Eigen, a lightweight C++ template library 2 // for linear algebra. 3 // 4 // Copyright (C) 2009 Gael Guennebaud <gael.guennebaud (a] inria.fr> 5 // 6 // This Source Code Form is subject to the terms of the Mozilla 7 // Public License v. 2.0. If a copy of the MPL was not distributed 8 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 10 #ifndef EIGEN2SUPPORT_H 11 #define EIGEN2SUPPORT_H 12 13 #if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H)) 14 #error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header 15 #endif 16 17 #ifndef EIGEN_NO_EIGEN2_DEPRECATED_WARNING 18 19 #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__) 20 #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)" 21 #else 22 #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)") 23 #endif 24 25 #endif // EIGEN_NO_EIGEN2_DEPRECATED_WARNING 26 27 #include "src/Core/util/DisableStupidWarnings.h" 28 29 /** \ingroup Support_modules 30 * \defgroup Eigen2Support_Module Eigen2 support module 31 * 32 * \warning Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. 33 * 34 * This module provides a couple of deprecated functions improving the compatibility with Eigen2. 35 * 36 * To use it, define EIGEN2_SUPPORT before including any Eigen header 37 * \code 38 * #define EIGEN2_SUPPORT 39 * \endcode 40 * 41 */ 42 43 #include "src/Eigen2Support/Macros.h" 44 #include "src/Eigen2Support/Memory.h" 45 #include "src/Eigen2Support/Meta.h" 46 #include "src/Eigen2Support/Lazy.h" 47 #include "src/Eigen2Support/Cwise.h" 48 #include "src/Eigen2Support/CwiseOperators.h" 49 #include "src/Eigen2Support/TriangularSolver.h" 50 #include "src/Eigen2Support/Block.h" 51 #include "src/Eigen2Support/VectorBlock.h" 52 #include "src/Eigen2Support/Minor.h" 53 #include "src/Eigen2Support/MathFunctions.h" 54 55 56 #include "src/Core/util/ReenableStupidWarnings.h" 57 58 // Eigen2 used to include iostream 59 #include<iostream> 60 61 #define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \ 62 using Eigen::Matrix##SizeSuffix##TypeSuffix; \ 63 using Eigen::Vector##SizeSuffix##TypeSuffix; \ 64 using Eigen::RowVector##SizeSuffix##TypeSuffix; 65 66 #define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \ 67 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \ 68 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \ 69 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \ 70 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \ 71 72 #define EIGEN_USING_MATRIX_TYPEDEFS \ 73 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \ 74 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \ 75 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \ 76 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \ 77 EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd) 78 79 #define USING_PART_OF_NAMESPACE_EIGEN \ 80 EIGEN_USING_MATRIX_TYPEDEFS \ 81 using Eigen::Matrix; \ 82 using Eigen::MatrixBase; \ 83 using Eigen::ei_random; \ 84 using Eigen::ei_real; \ 85 using Eigen::ei_imag; \ 86 using Eigen::ei_conj; \ 87 using Eigen::ei_abs; \ 88 using Eigen::ei_abs2; \ 89 using Eigen::ei_sqrt; \ 90 using Eigen::ei_exp; \ 91 using Eigen::ei_log; \ 92 using Eigen::ei_sin; \ 93 using Eigen::ei_cos; 94 95 #endif // EIGEN2SUPPORT_H 96