aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/SparseExtra
blob: 712a63271dcea5704daf2fa2cc36400277e6874d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#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 "src/SparseExtra/RandomSetter.h"
#include "src/SparseExtra/SparseLLT.h"
#include "src/SparseExtra/SparseLDLT.h"
#include "src/SparseExtra/SparseLU.h"

} // namespace Eigen

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

#endif // EIGEN_SPARSE_EXTRA_MODULE_H