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@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#include "src/Core/util/DisableStupidWarnings.h" 18 19/** \ingroup Support_modules 20 * \defgroup Eigen2Support_Module Eigen2 support module 21 * This module provides a couple of deprecated functions improving the compatibility with Eigen2. 22 * 23 * To use it, define EIGEN2_SUPPORT before including any Eigen header 24 * \code 25 * #define EIGEN2_SUPPORT 26 * \endcode 27 * 28 */ 29 30#include "src/Eigen2Support/Macros.h" 31#include "src/Eigen2Support/Memory.h" 32#include "src/Eigen2Support/Meta.h" 33#include "src/Eigen2Support/Lazy.h" 34#include "src/Eigen2Support/Cwise.h" 35#include "src/Eigen2Support/CwiseOperators.h" 36#include "src/Eigen2Support/TriangularSolver.h" 37#include "src/Eigen2Support/Block.h" 38#include "src/Eigen2Support/VectorBlock.h" 39#include "src/Eigen2Support/Minor.h" 40#include "src/Eigen2Support/MathFunctions.h" 41 42 43#include "src/Core/util/ReenableStupidWarnings.h" 44 45// Eigen2 used to include iostream 46#include<iostream> 47 48#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, SizeSuffix) \ 49using Eigen::Matrix##SizeSuffix##TypeSuffix; \ 50using Eigen::Vector##SizeSuffix##TypeSuffix; \ 51using Eigen::RowVector##SizeSuffix##TypeSuffix; 52 53#define EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(TypeSuffix) \ 54EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 2) \ 55EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 3) \ 56EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, 4) \ 57EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE_AND_SIZE(TypeSuffix, X) \ 58 59#define EIGEN_USING_MATRIX_TYPEDEFS \ 60EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(i) \ 61EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(f) \ 62EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(d) \ 63EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cf) \ 64EIGEN_USING_MATRIX_TYPEDEFS_FOR_TYPE(cd) 65 66#define USING_PART_OF_NAMESPACE_EIGEN \ 67EIGEN_USING_MATRIX_TYPEDEFS \ 68using Eigen::Matrix; \ 69using Eigen::MatrixBase; \ 70using Eigen::ei_random; \ 71using Eigen::ei_real; \ 72using Eigen::ei_imag; \ 73using Eigen::ei_conj; \ 74using Eigen::ei_abs; \ 75using Eigen::ei_abs2; \ 76using Eigen::ei_sqrt; \ 77using Eigen::ei_exp; \ 78using Eigen::ei_log; \ 79using Eigen::ei_sin; \ 80using Eigen::ei_cos; 81 82#endif // EIGEN2SUPPORT_H 83