#ifndef EIGEN_SPARSE_EXTRA_MODULE_H
#define EIGEN_SPARSE_EXTRA_MODULE_H

#include "../../Eigen/Sparse"

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

#include <vector>
#include <map>
#include <cstdlib>
#include <cstring>
#include <algorithm>

#ifdef EIGEN_GOOGLEHASH_SUPPORT
  #include <google/dense_hash_map>
#endif

namespace Eigen {

/** \ingroup Unsupported_modules
  * \defgroup SparseExtra_Module SparseExtra module
  *
  * This module contains some experimental features extending the sparse module.
  *
  * \code
  * #include <Eigen/SparseExtra>
  * \endcode
  */

struct DefaultBackend {};


// solver flags
enum {
  CompleteFactorization       = 0x0000,  // the default
  IncompleteFactorization     = 0x0001,
  MemoryEfficient             = 0x0002,

  // For LLT Cholesky:
  SupernodalMultifrontal      = 0x0010,
  SupernodalLeftLooking       = 0x0020,

  // Ordering methods:
  NaturalOrdering             = 0x0100, // the default
  MinimumDegree_AT_PLUS_A     = 0x0200,
  MinimumDegree_ATA           = 0x0300,
  ColApproxMinimumDegree      = 0x0400,
  Metis                       = 0x0500,
  Scotch                      = 0x0600,
  Chaco                       = 0x0700,
  OrderingMask                = 0x0f00
};

#include "../../Eigen/src/misc/Solve.h"

#include "src/SparseExtra/RandomSetter.h"
#include "src/SparseExtra/Solve.h"
#include "src/SparseExtra/Amd.h"
#include "src/SparseExtra/SimplicialCholesky.h"

#include "src/SparseExtra/SparseLLT.h"
#include "src/SparseExtra/SparseLDLTLegacy.h"
#include "src/SparseExtra/SparseLU.h"

} // namespace Eigen

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

#endif // EIGEN_SPARSE_EXTRA_MODULE_H
