2009-11-19 01:15:19 +08:00
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
2010-06-25 05:21:58 +08:00
// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
2009-11-19 01:15:19 +08:00
//
2012-07-14 02:42:47 +08:00
// 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/.
2009-11-19 01:15:19 +08:00
#ifndef EIGEN2SUPPORT_H
#define EIGEN2SUPPORT_H
2010-01-08 04:15:32 +08:00
#if (!defined(EIGEN2_SUPPORT)) || (!defined(EIGEN_CORE_H))
2010-02-28 08:04:22 +08:00
#error Eigen2 support must be enabled by defining EIGEN2_SUPPORT before including any Eigen header
2009-11-19 01:15:19 +08:00
#endif
2014-02-20 16:35:50 +08:00
#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
2011-02-22 22:31:22 +08:00
#include "src/Core/util/DisableStupidWarnings.h"
2009-11-19 01:15:19 +08:00
2011-11-28 23:36:37 +08:00
/** \ingroup Support_modules
* \defgroup Eigen2Support_Module Eigen2 support module
2009-11-19 01:15:19 +08:00
*
2014-02-20 16:35:50 +08:00
* \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.
*
2010-02-28 08:04:22 +08:00
* To use it, define EIGEN2_SUPPORT before including any Eigen header
2009-11-19 01:15:19 +08:00
* \code
2010-01-08 04:15:32 +08:00
* #define EIGEN2_SUPPORT
2009-11-19 01:15:19 +08:00
* \endcode
2010-01-08 04:15:32 +08:00
*
2009-11-19 01:15:19 +08:00
*/
2011-01-20 00:01:07 +08:00
#include "src/Eigen2Support/Macros.h"
2011-01-20 23:36:32 +08:00
#include "src/Eigen2Support/Memory.h"
2011-01-20 00:01:07 +08:00
#include "src/Eigen2Support/Meta.h"
2009-11-19 01:15:19 +08:00
#include "src/Eigen2Support/Lazy.h"
#include "src/Eigen2Support/Cwise.h"
#include "src/Eigen2Support/CwiseOperators.h"
#include "src/Eigen2Support/TriangularSolver.h"
2010-04-23 02:31:39 +08:00
#include "src/Eigen2Support/Block.h"
#include "src/Eigen2Support/VectorBlock.h"
2010-04-23 08:49:01 +08:00
#include "src/Eigen2Support/Minor.h"
2010-12-03 18:22:35 +08:00
#include "src/Eigen2Support/MathFunctions.h"
2010-04-23 02:31:39 +08:00
2009-11-19 01:15:19 +08:00
2011-02-22 22:31:22 +08:00
#include "src/Core/util/ReenableStupidWarnings.h"
2009-11-19 01:15:19 +08:00
2010-02-28 08:04:22 +08:00
// Eigen2 used to include iostream
#include<iostream>
2011-11-16 22:32:50 +08:00
#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)
2010-04-23 06:27:13 +08:00
#define USING_PART_OF_NAMESPACE_EIGEN \
EIGEN_USING_MATRIX_TYPEDEFS \
using Eigen::Matrix; \
using Eigen::MatrixBase; \
2011-01-25 21:03:12 +08:00
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;
2010-04-23 06:27:13 +08:00
2009-11-19 01:15:19 +08:00
#endif // EIGEN2SUPPORT_H