#ifndef EIGEN_QR_MODULE_H
#define EIGEN_QR_MODULE_H

#include "Core"

#include "src/Core/util/DisableMSVCWarnings.h"

#include "Cholesky"

// Note that EIGEN_HIDE_HEAVY_CODE has to be defined per module
#if (defined EIGEN_EXTERN_INSTANTIATIONS) && (EIGEN_EXTERN_INSTANTIATIONS>=2)
  #ifndef EIGEN_HIDE_HEAVY_CODE
  #define EIGEN_HIDE_HEAVY_CODE
  #endif
#elif defined EIGEN_HIDE_HEAVY_CODE
  #undef EIGEN_HIDE_HEAVY_CODE
#endif

namespace Eigen {

/** \defgroup QR_Module QR module
  *
  * \nonstableyet
  *
  * This module mainly provides QR decomposition and an eigen value solver.
  * This module also provides some MatrixBase methods, including:
  *  - MatrixBase::qr(),
  *  - MatrixBase::eigenvalues(),
  *  - MatrixBase::operatorNorm()
  *
  * \code
  * #include <Eigen/QR>
  * \endcode
  */

#include "src/QR/QR.h"
#include "src/QR/Tridiagonalization.h"
#include "src/QR/EigenSolver.h"
#include "src/QR/SelfAdjointEigenSolver.h"
#include "src/QR/HessenbergDecomposition.h"

// declare all classes for a given matrix type
#define EIGEN_QR_MODULE_INSTANTIATE_TYPE(MATRIXTYPE,PREFIX) \
  PREFIX template class QR<MATRIXTYPE>; \
  PREFIX template class Tridiagonalization<MATRIXTYPE>; \
  PREFIX template class HessenbergDecomposition<MATRIXTYPE>; \
  PREFIX template class SelfAdjointEigenSolver<MATRIXTYPE>

// removed because it does not support complex yet
//  PREFIX template class EigenSolver<MATRIXTYPE>

// declare all class for all types
#define EIGEN_QR_MODULE_INSTANTIATE(PREFIX) \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2f,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix2d,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3f,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix3d,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4f,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(Matrix4d,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXf,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXd,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcf,PREFIX); \
  EIGEN_QR_MODULE_INSTANTIATE_TYPE(MatrixXcd,PREFIX)

#ifdef EIGEN_EXTERN_INSTANTIATIONS
  EIGEN_QR_MODULE_INSTANTIATE(extern);
#endif // EIGEN_EXTERN_INSTANTIATIONS

} // namespace Eigen

#include "src/Core/util/EnableMSVCWarnings.h"

#endif // EIGEN_QR_MODULE_H
