Home | History | Annotate | Download | only in Eigen
      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