mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
c6503e03eb
* change Sparse* specialization's signatures from <..., int Backend> to <..., typename Backend>. Update SparseExtra accordingly to use structs instead of the SparseBackend enum. * add SparseLDLT Cholmod specialization * for Cholmod and UmfPack, SparseLU, SparseLLT and SparseLDLT now use ei_solve_retval and have the new solve() method (to be closer to the 3.0 API). * fix doc
74 lines
1.6 KiB
Plaintext
74 lines
1.6 KiB
Plaintext
#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 {};
|
|
|
|
/*
|
|
enum SparseBackend {
|
|
DefaultBackend,
|
|
Taucs,
|
|
Cholmod,
|
|
SuperLU,
|
|
UmfPack
|
|
};
|
|
*/
|
|
|
|
|
|
// 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
|