tomoto 0.3.0-x86_64-darwin
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +45 -0
- data/LICENSE.txt +22 -0
- data/README.md +162 -0
- data/ext/tomoto/ct.cpp +58 -0
- data/ext/tomoto/dmr.cpp +69 -0
- data/ext/tomoto/dt.cpp +91 -0
- data/ext/tomoto/extconf.rb +34 -0
- data/ext/tomoto/gdmr.cpp +42 -0
- data/ext/tomoto/hdp.cpp +47 -0
- data/ext/tomoto/hlda.cpp +71 -0
- data/ext/tomoto/hpa.cpp +32 -0
- data/ext/tomoto/lda.cpp +281 -0
- data/ext/tomoto/llda.cpp +33 -0
- data/ext/tomoto/mglda.cpp +81 -0
- data/ext/tomoto/pa.cpp +32 -0
- data/ext/tomoto/plda.cpp +33 -0
- data/ext/tomoto/slda.cpp +48 -0
- data/ext/tomoto/tomoto.cpp +48 -0
- data/ext/tomoto/utils.h +30 -0
- data/lib/tomoto/2.7/tomoto.bundle +0 -0
- data/lib/tomoto/3.0/tomoto.bundle +0 -0
- data/lib/tomoto/3.1/tomoto.bundle +0 -0
- data/lib/tomoto/ct.rb +24 -0
- data/lib/tomoto/dmr.rb +27 -0
- data/lib/tomoto/dt.rb +15 -0
- data/lib/tomoto/gdmr.rb +15 -0
- data/lib/tomoto/hdp.rb +11 -0
- data/lib/tomoto/hlda.rb +56 -0
- data/lib/tomoto/hpa.rb +11 -0
- data/lib/tomoto/lda.rb +181 -0
- data/lib/tomoto/llda.rb +15 -0
- data/lib/tomoto/mglda.rb +15 -0
- data/lib/tomoto/pa.rb +11 -0
- data/lib/tomoto/plda.rb +15 -0
- data/lib/tomoto/slda.rb +37 -0
- data/lib/tomoto/version.rb +3 -0
- data/lib/tomoto.rb +27 -0
- data/vendor/EigenRand/EigenRand/EigenRand +24 -0
- data/vendor/EigenRand/LICENSE +21 -0
- data/vendor/EigenRand/README.md +426 -0
- data/vendor/eigen/COPYING.APACHE +203 -0
- data/vendor/eigen/COPYING.BSD +26 -0
- data/vendor/eigen/COPYING.GPL +674 -0
- data/vendor/eigen/COPYING.LGPL +502 -0
- data/vendor/eigen/COPYING.MINPACK +51 -0
- data/vendor/eigen/COPYING.MPL2 +373 -0
- data/vendor/eigen/COPYING.README +18 -0
- data/vendor/eigen/Eigen/Cholesky +45 -0
- data/vendor/eigen/Eigen/CholmodSupport +48 -0
- data/vendor/eigen/Eigen/Core +384 -0
- data/vendor/eigen/Eigen/Dense +7 -0
- data/vendor/eigen/Eigen/Eigen +2 -0
- data/vendor/eigen/Eigen/Eigenvalues +60 -0
- data/vendor/eigen/Eigen/Geometry +59 -0
- data/vendor/eigen/Eigen/Householder +29 -0
- data/vendor/eigen/Eigen/IterativeLinearSolvers +48 -0
- data/vendor/eigen/Eigen/Jacobi +32 -0
- data/vendor/eigen/Eigen/KLUSupport +41 -0
- data/vendor/eigen/Eigen/LU +47 -0
- data/vendor/eigen/Eigen/MetisSupport +35 -0
- data/vendor/eigen/Eigen/OrderingMethods +70 -0
- data/vendor/eigen/Eigen/PaStiXSupport +49 -0
- data/vendor/eigen/Eigen/PardisoSupport +35 -0
- data/vendor/eigen/Eigen/QR +50 -0
- data/vendor/eigen/Eigen/QtAlignedMalloc +39 -0
- data/vendor/eigen/Eigen/SPQRSupport +34 -0
- data/vendor/eigen/Eigen/SVD +50 -0
- data/vendor/eigen/Eigen/Sparse +34 -0
- data/vendor/eigen/Eigen/SparseCholesky +37 -0
- data/vendor/eigen/Eigen/SparseCore +69 -0
- data/vendor/eigen/Eigen/SparseLU +50 -0
- data/vendor/eigen/Eigen/SparseQR +36 -0
- data/vendor/eigen/Eigen/StdDeque +27 -0
- data/vendor/eigen/Eigen/StdList +26 -0
- data/vendor/eigen/Eigen/StdVector +27 -0
- data/vendor/eigen/Eigen/SuperLUSupport +64 -0
- data/vendor/eigen/Eigen/UmfPackSupport +40 -0
- data/vendor/eigen/README.md +5 -0
- data/vendor/eigen/bench/README.txt +55 -0
- data/vendor/eigen/bench/btl/COPYING +340 -0
- data/vendor/eigen/bench/btl/README +154 -0
- data/vendor/eigen/bench/tensors/README +20 -0
- data/vendor/eigen/blas/README.txt +6 -0
- data/vendor/eigen/ci/README.md +56 -0
- data/vendor/eigen/demos/mandelbrot/README +10 -0
- data/vendor/eigen/demos/mix_eigen_and_c/README +9 -0
- data/vendor/eigen/demos/opengl/README +13 -0
- data/vendor/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md +1815 -0
- data/vendor/eigen/unsupported/README.txt +50 -0
- data/vendor/tomotopy/LICENSE +21 -0
- data/vendor/tomotopy/README.kr.rst +512 -0
- data/vendor/tomotopy/README.rst +516 -0
- data/vendor/variant/LICENSE +25 -0
- data/vendor/variant/LICENSE_1_0.txt +23 -0
- data/vendor/variant/README.md +102 -0
- metadata +140 -0
@@ -0,0 +1,47 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_LU_MODULE_H
|
9
|
+
#define EIGEN_LU_MODULE_H
|
10
|
+
|
11
|
+
#include "Core"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
/** \defgroup LU_Module LU module
|
16
|
+
* This module includes %LU decomposition and related notions such as matrix inversion and determinant.
|
17
|
+
* This module defines the following MatrixBase methods:
|
18
|
+
* - MatrixBase::inverse()
|
19
|
+
* - MatrixBase::determinant()
|
20
|
+
*
|
21
|
+
* \code
|
22
|
+
* #include <Eigen/LU>
|
23
|
+
* \endcode
|
24
|
+
*/
|
25
|
+
|
26
|
+
#include "src/misc/Kernel.h"
|
27
|
+
#include "src/misc/Image.h"
|
28
|
+
#include "src/LU/FullPivLU.h"
|
29
|
+
#include "src/LU/PartialPivLU.h"
|
30
|
+
#ifdef EIGEN_USE_LAPACKE
|
31
|
+
#ifdef EIGEN_USE_MKL
|
32
|
+
#include "mkl_lapacke.h"
|
33
|
+
#else
|
34
|
+
#include "src/misc/lapacke.h"
|
35
|
+
#endif
|
36
|
+
#include "src/LU/PartialPivLU_LAPACKE.h"
|
37
|
+
#endif
|
38
|
+
#include "src/LU/Determinant.h"
|
39
|
+
#include "src/LU/InverseImpl.h"
|
40
|
+
|
41
|
+
#if defined EIGEN_VECTORIZE_SSE || defined EIGEN_VECTORIZE_NEON
|
42
|
+
#include "src/LU/arch/InverseSize4.h"
|
43
|
+
#endif
|
44
|
+
|
45
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
46
|
+
|
47
|
+
#endif // EIGEN_LU_MODULE_H
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_METISSUPPORT_MODULE_H
|
9
|
+
#define EIGEN_METISSUPPORT_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
extern "C" {
|
16
|
+
#include <metis.h>
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
/** \ingroup Support_modules
|
21
|
+
* \defgroup MetisSupport_Module MetisSupport module
|
22
|
+
*
|
23
|
+
* \code
|
24
|
+
* #include <Eigen/MetisSupport>
|
25
|
+
* \endcode
|
26
|
+
* This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis).
|
27
|
+
* It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink
|
28
|
+
*/
|
29
|
+
|
30
|
+
|
31
|
+
#include "src/MetisSupport/MetisSupport.h"
|
32
|
+
|
33
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
34
|
+
|
35
|
+
#endif // EIGEN_METISSUPPORT_MODULE_H
|
@@ -0,0 +1,70 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_ORDERINGMETHODS_MODULE_H
|
9
|
+
#define EIGEN_ORDERINGMETHODS_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
/**
|
16
|
+
* \defgroup OrderingMethods_Module OrderingMethods module
|
17
|
+
*
|
18
|
+
* This module is currently for internal use only
|
19
|
+
*
|
20
|
+
* It defines various built-in and external ordering methods for sparse matrices.
|
21
|
+
* They are typically used to reduce the number of elements during
|
22
|
+
* the sparse matrix decomposition (LLT, LU, QR).
|
23
|
+
* Precisely, in a preprocessing step, a permutation matrix P is computed using
|
24
|
+
* those ordering methods and applied to the columns of the matrix.
|
25
|
+
* Using for instance the sparse Cholesky decomposition, it is expected that
|
26
|
+
* the nonzeros elements in LLT(A*P) will be much smaller than that in LLT(A).
|
27
|
+
*
|
28
|
+
*
|
29
|
+
* Usage :
|
30
|
+
* \code
|
31
|
+
* #include <Eigen/OrderingMethods>
|
32
|
+
* \endcode
|
33
|
+
*
|
34
|
+
* A simple usage is as a template parameter in the sparse decomposition classes :
|
35
|
+
*
|
36
|
+
* \code
|
37
|
+
* SparseLU<MatrixType, COLAMDOrdering<int> > solver;
|
38
|
+
* \endcode
|
39
|
+
*
|
40
|
+
* \code
|
41
|
+
* SparseQR<MatrixType, COLAMDOrdering<int> > solver;
|
42
|
+
* \endcode
|
43
|
+
*
|
44
|
+
* It is possible as well to call directly a particular ordering method for your own purpose,
|
45
|
+
* \code
|
46
|
+
* AMDOrdering<int> ordering;
|
47
|
+
* PermutationMatrix<Dynamic, Dynamic, int> perm;
|
48
|
+
* SparseMatrix<double> A;
|
49
|
+
* //Fill the matrix ...
|
50
|
+
*
|
51
|
+
* ordering(A, perm); // Call AMD
|
52
|
+
* \endcode
|
53
|
+
*
|
54
|
+
* \note Some of these methods (like AMD or METIS), need the sparsity pattern
|
55
|
+
* of the input matrix to be symmetric. When the matrix is structurally unsymmetric,
|
56
|
+
* Eigen computes internally the pattern of \f$A^T*A\f$ before calling the method.
|
57
|
+
* If your matrix is already symmetric (at leat in structure), you can avoid that
|
58
|
+
* by calling the method with a SelfAdjointView type.
|
59
|
+
*
|
60
|
+
* \code
|
61
|
+
* // Call the ordering on the pattern of the lower triangular matrix A
|
62
|
+
* ordering(A.selfadjointView<Lower>(), perm);
|
63
|
+
* \endcode
|
64
|
+
*/
|
65
|
+
|
66
|
+
#include "src/OrderingMethods/Amd.h"
|
67
|
+
#include "src/OrderingMethods/Ordering.h"
|
68
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
69
|
+
|
70
|
+
#endif // EIGEN_ORDERINGMETHODS_MODULE_H
|
@@ -0,0 +1,49 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_PASTIXSUPPORT_MODULE_H
|
9
|
+
#define EIGEN_PASTIXSUPPORT_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
extern "C" {
|
16
|
+
#include <pastix_nompi.h>
|
17
|
+
#include <pastix.h>
|
18
|
+
}
|
19
|
+
|
20
|
+
#ifdef complex
|
21
|
+
#undef complex
|
22
|
+
#endif
|
23
|
+
|
24
|
+
/** \ingroup Support_modules
|
25
|
+
* \defgroup PaStiXSupport_Module PaStiXSupport module
|
26
|
+
*
|
27
|
+
* This module provides an interface to the <a href="http://pastix.gforge.inria.fr/">PaSTiX</a> library.
|
28
|
+
* PaSTiX is a general \b supernodal, \b parallel and \b opensource sparse solver.
|
29
|
+
* It provides the two following main factorization classes:
|
30
|
+
* - class PastixLLT : a supernodal, parallel LLt Cholesky factorization.
|
31
|
+
* - class PastixLDLT: a supernodal, parallel LDLt Cholesky factorization.
|
32
|
+
* - class PastixLU : a supernodal, parallel LU factorization (optimized for a symmetric pattern).
|
33
|
+
*
|
34
|
+
* \code
|
35
|
+
* #include <Eigen/PaStiXSupport>
|
36
|
+
* \endcode
|
37
|
+
*
|
38
|
+
* In order to use this module, the PaSTiX headers must be accessible from the include paths, and your binary must be linked to the PaSTiX library and its dependencies.
|
39
|
+
* This wrapper resuires PaStiX version 5.x compiled without MPI support.
|
40
|
+
* The dependencies depend on how PaSTiX has been compiled.
|
41
|
+
* For a cmake based project, you can use our FindPaSTiX.cmake module to help you in this task.
|
42
|
+
*
|
43
|
+
*/
|
44
|
+
|
45
|
+
#include "src/PaStiXSupport/PaStiXSupport.h"
|
46
|
+
|
47
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
48
|
+
|
49
|
+
#endif // EIGEN_PASTIXSUPPORT_MODULE_H
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_PARDISOSUPPORT_MODULE_H
|
9
|
+
#define EIGEN_PARDISOSUPPORT_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
#include <mkl_pardiso.h>
|
16
|
+
|
17
|
+
/** \ingroup Support_modules
|
18
|
+
* \defgroup PardisoSupport_Module PardisoSupport module
|
19
|
+
*
|
20
|
+
* This module brings support for the Intel(R) MKL PARDISO direct sparse solvers.
|
21
|
+
*
|
22
|
+
* \code
|
23
|
+
* #include <Eigen/PardisoSupport>
|
24
|
+
* \endcode
|
25
|
+
*
|
26
|
+
* In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies.
|
27
|
+
* See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration.
|
28
|
+
*
|
29
|
+
*/
|
30
|
+
|
31
|
+
#include "src/PardisoSupport/PardisoSupport.h"
|
32
|
+
|
33
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
34
|
+
|
35
|
+
#endif // EIGEN_PARDISOSUPPORT_MODULE_H
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_QR_MODULE_H
|
9
|
+
#define EIGEN_QR_MODULE_H
|
10
|
+
|
11
|
+
#include "Core"
|
12
|
+
|
13
|
+
#include "Cholesky"
|
14
|
+
#include "Jacobi"
|
15
|
+
#include "Householder"
|
16
|
+
|
17
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
18
|
+
|
19
|
+
/** \defgroup QR_Module QR module
|
20
|
+
*
|
21
|
+
*
|
22
|
+
*
|
23
|
+
* This module provides various QR decompositions
|
24
|
+
* This module also provides some MatrixBase methods, including:
|
25
|
+
* - MatrixBase::householderQr()
|
26
|
+
* - MatrixBase::colPivHouseholderQr()
|
27
|
+
* - MatrixBase::fullPivHouseholderQr()
|
28
|
+
*
|
29
|
+
* \code
|
30
|
+
* #include <Eigen/QR>
|
31
|
+
* \endcode
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include "src/QR/HouseholderQR.h"
|
35
|
+
#include "src/QR/FullPivHouseholderQR.h"
|
36
|
+
#include "src/QR/ColPivHouseholderQR.h"
|
37
|
+
#include "src/QR/CompleteOrthogonalDecomposition.h"
|
38
|
+
#ifdef EIGEN_USE_LAPACKE
|
39
|
+
#ifdef EIGEN_USE_MKL
|
40
|
+
#include "mkl_lapacke.h"
|
41
|
+
#else
|
42
|
+
#include "src/misc/lapacke.h"
|
43
|
+
#endif
|
44
|
+
#include "src/QR/HouseholderQR_LAPACKE.h"
|
45
|
+
#include "src/QR/ColPivHouseholderQR_LAPACKE.h"
|
46
|
+
#endif
|
47
|
+
|
48
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
49
|
+
|
50
|
+
#endif // EIGEN_QR_MODULE_H
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_QTMALLOC_MODULE_H
|
9
|
+
#define EIGEN_QTMALLOC_MODULE_H
|
10
|
+
|
11
|
+
#include "Core"
|
12
|
+
|
13
|
+
#if (!EIGEN_MALLOC_ALREADY_ALIGNED)
|
14
|
+
|
15
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
16
|
+
|
17
|
+
void *qMalloc(std::size_t size)
|
18
|
+
{
|
19
|
+
return Eigen::internal::aligned_malloc(size);
|
20
|
+
}
|
21
|
+
|
22
|
+
void qFree(void *ptr)
|
23
|
+
{
|
24
|
+
Eigen::internal::aligned_free(ptr);
|
25
|
+
}
|
26
|
+
|
27
|
+
void *qRealloc(void *ptr, std::size_t size)
|
28
|
+
{
|
29
|
+
void* newPtr = Eigen::internal::aligned_malloc(size);
|
30
|
+
std::memcpy(newPtr, ptr, size);
|
31
|
+
Eigen::internal::aligned_free(ptr);
|
32
|
+
return newPtr;
|
33
|
+
}
|
34
|
+
|
35
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
36
|
+
|
37
|
+
#endif
|
38
|
+
|
39
|
+
#endif // EIGEN_QTMALLOC_MODULE_H
|
@@ -0,0 +1,34 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_SPQRSUPPORT_MODULE_H
|
9
|
+
#define EIGEN_SPQRSUPPORT_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
#include "SuiteSparseQR.hpp"
|
16
|
+
|
17
|
+
/** \ingroup Support_modules
|
18
|
+
* \defgroup SPQRSupport_Module SuiteSparseQR module
|
19
|
+
*
|
20
|
+
* This module provides an interface to the SPQR library, which is part of the <a href="http://www.suitesparse.com">suitesparse</a> package.
|
21
|
+
*
|
22
|
+
* \code
|
23
|
+
* #include <Eigen/SPQRSupport>
|
24
|
+
* \endcode
|
25
|
+
*
|
26
|
+
* In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...).
|
27
|
+
* For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules
|
28
|
+
*
|
29
|
+
*/
|
30
|
+
|
31
|
+
#include "src/CholmodSupport/CholmodSupport.h"
|
32
|
+
#include "src/SPQRSupport/SuiteSparseQRSupport.h"
|
33
|
+
|
34
|
+
#endif
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_SVD_MODULE_H
|
9
|
+
#define EIGEN_SVD_MODULE_H
|
10
|
+
|
11
|
+
#include "QR"
|
12
|
+
#include "Householder"
|
13
|
+
#include "Jacobi"
|
14
|
+
|
15
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
16
|
+
|
17
|
+
/** \defgroup SVD_Module SVD module
|
18
|
+
*
|
19
|
+
*
|
20
|
+
*
|
21
|
+
* This module provides SVD decomposition for matrices (both real and complex).
|
22
|
+
* Two decomposition algorithms are provided:
|
23
|
+
* - JacobiSVD implementing two-sided Jacobi iterations is numerically very accurate, fast for small matrices, but very slow for larger ones.
|
24
|
+
* - BDCSVD implementing a recursive divide & conquer strategy on top of an upper-bidiagonalization which remains fast for large problems.
|
25
|
+
* These decompositions are accessible via the respective classes and following MatrixBase methods:
|
26
|
+
* - MatrixBase::jacobiSvd()
|
27
|
+
* - MatrixBase::bdcSvd()
|
28
|
+
*
|
29
|
+
* \code
|
30
|
+
* #include <Eigen/SVD>
|
31
|
+
* \endcode
|
32
|
+
*/
|
33
|
+
|
34
|
+
#include "src/misc/RealSvd2x2.h"
|
35
|
+
#include "src/SVD/UpperBidiagonalization.h"
|
36
|
+
#include "src/SVD/SVDBase.h"
|
37
|
+
#include "src/SVD/JacobiSVD.h"
|
38
|
+
#include "src/SVD/BDCSVD.h"
|
39
|
+
#if defined(EIGEN_USE_LAPACKE) && !defined(EIGEN_USE_LAPACKE_STRICT)
|
40
|
+
#ifdef EIGEN_USE_MKL
|
41
|
+
#include "mkl_lapacke.h"
|
42
|
+
#else
|
43
|
+
#include "src/misc/lapacke.h"
|
44
|
+
#endif
|
45
|
+
#include "src/SVD/JacobiSVD_LAPACKE.h"
|
46
|
+
#endif
|
47
|
+
|
48
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
49
|
+
|
50
|
+
#endif // EIGEN_SVD_MODULE_H
|
@@ -0,0 +1,34 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_SPARSE_MODULE_H
|
9
|
+
#define EIGEN_SPARSE_MODULE_H
|
10
|
+
|
11
|
+
/** \defgroup Sparse_Module Sparse meta-module
|
12
|
+
*
|
13
|
+
* Meta-module including all related modules:
|
14
|
+
* - \ref SparseCore_Module
|
15
|
+
* - \ref OrderingMethods_Module
|
16
|
+
* - \ref SparseCholesky_Module
|
17
|
+
* - \ref SparseLU_Module
|
18
|
+
* - \ref SparseQR_Module
|
19
|
+
* - \ref IterativeLinearSolvers_Module
|
20
|
+
*
|
21
|
+
\code
|
22
|
+
#include <Eigen/Sparse>
|
23
|
+
\endcode
|
24
|
+
*/
|
25
|
+
|
26
|
+
#include "SparseCore"
|
27
|
+
#include "OrderingMethods"
|
28
|
+
#include "SparseCholesky"
|
29
|
+
#include "SparseLU"
|
30
|
+
#include "SparseQR"
|
31
|
+
#include "IterativeLinearSolvers"
|
32
|
+
|
33
|
+
#endif // EIGEN_SPARSE_MODULE_H
|
34
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// Copyright (C) 2008-2013 Gael Guennebaud <gael.guennebaud@inria.fr>
|
5
|
+
//
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
9
|
+
|
10
|
+
#ifndef EIGEN_SPARSECHOLESKY_MODULE_H
|
11
|
+
#define EIGEN_SPARSECHOLESKY_MODULE_H
|
12
|
+
|
13
|
+
#include "SparseCore"
|
14
|
+
#include "OrderingMethods"
|
15
|
+
|
16
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
17
|
+
|
18
|
+
/**
|
19
|
+
* \defgroup SparseCholesky_Module SparseCholesky module
|
20
|
+
*
|
21
|
+
* This module currently provides two variants of the direct sparse Cholesky decomposition for selfadjoint (hermitian) matrices.
|
22
|
+
* Those decompositions are accessible via the following classes:
|
23
|
+
* - SimplicialLLt,
|
24
|
+
* - SimplicialLDLt
|
25
|
+
*
|
26
|
+
* Such problems can also be solved using the ConjugateGradient solver from the IterativeLinearSolvers module.
|
27
|
+
*
|
28
|
+
* \code
|
29
|
+
* #include <Eigen/SparseCholesky>
|
30
|
+
* \endcode
|
31
|
+
*/
|
32
|
+
|
33
|
+
#include "src/SparseCholesky/SimplicialCholesky.h"
|
34
|
+
#include "src/SparseCholesky/SimplicialCholesky_impl.h"
|
35
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
36
|
+
|
37
|
+
#endif // EIGEN_SPARSECHOLESKY_MODULE_H
|
@@ -0,0 +1,69 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_SPARSECORE_MODULE_H
|
9
|
+
#define EIGEN_SPARSECORE_MODULE_H
|
10
|
+
|
11
|
+
#include "Core"
|
12
|
+
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
#include <vector>
|
16
|
+
#include <map>
|
17
|
+
#include <cstdlib>
|
18
|
+
#include <cstring>
|
19
|
+
#include <algorithm>
|
20
|
+
|
21
|
+
/**
|
22
|
+
* \defgroup SparseCore_Module SparseCore module
|
23
|
+
*
|
24
|
+
* This module provides a sparse matrix representation, and basic associated matrix manipulations
|
25
|
+
* and operations.
|
26
|
+
*
|
27
|
+
* See the \ref TutorialSparse "Sparse tutorial"
|
28
|
+
*
|
29
|
+
* \code
|
30
|
+
* #include <Eigen/SparseCore>
|
31
|
+
* \endcode
|
32
|
+
*
|
33
|
+
* This module depends on: Core.
|
34
|
+
*/
|
35
|
+
|
36
|
+
#include "src/SparseCore/SparseUtil.h"
|
37
|
+
#include "src/SparseCore/SparseMatrixBase.h"
|
38
|
+
#include "src/SparseCore/SparseAssign.h"
|
39
|
+
#include "src/SparseCore/CompressedStorage.h"
|
40
|
+
#include "src/SparseCore/AmbiVector.h"
|
41
|
+
#include "src/SparseCore/SparseCompressedBase.h"
|
42
|
+
#include "src/SparseCore/SparseMatrix.h"
|
43
|
+
#include "src/SparseCore/SparseMap.h"
|
44
|
+
#include "src/SparseCore/MappedSparseMatrix.h"
|
45
|
+
#include "src/SparseCore/SparseVector.h"
|
46
|
+
#include "src/SparseCore/SparseRef.h"
|
47
|
+
#include "src/SparseCore/SparseCwiseUnaryOp.h"
|
48
|
+
#include "src/SparseCore/SparseCwiseBinaryOp.h"
|
49
|
+
#include "src/SparseCore/SparseTranspose.h"
|
50
|
+
#include "src/SparseCore/SparseBlock.h"
|
51
|
+
#include "src/SparseCore/SparseDot.h"
|
52
|
+
#include "src/SparseCore/SparseRedux.h"
|
53
|
+
#include "src/SparseCore/SparseView.h"
|
54
|
+
#include "src/SparseCore/SparseDiagonalProduct.h"
|
55
|
+
#include "src/SparseCore/ConservativeSparseSparseProduct.h"
|
56
|
+
#include "src/SparseCore/SparseSparseProductWithPruning.h"
|
57
|
+
#include "src/SparseCore/SparseProduct.h"
|
58
|
+
#include "src/SparseCore/SparseDenseProduct.h"
|
59
|
+
#include "src/SparseCore/SparseSelfAdjointView.h"
|
60
|
+
#include "src/SparseCore/SparseTriangularView.h"
|
61
|
+
#include "src/SparseCore/TriangularSolver.h"
|
62
|
+
#include "src/SparseCore/SparsePermutation.h"
|
63
|
+
#include "src/SparseCore/SparseFuzzy.h"
|
64
|
+
#include "src/SparseCore/SparseSolverBase.h"
|
65
|
+
|
66
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
67
|
+
|
68
|
+
#endif // EIGEN_SPARSECORE_MODULE_H
|
69
|
+
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
|
5
|
+
// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
|
6
|
+
//
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
10
|
+
|
11
|
+
#ifndef EIGEN_SPARSELU_MODULE_H
|
12
|
+
#define EIGEN_SPARSELU_MODULE_H
|
13
|
+
|
14
|
+
#include "SparseCore"
|
15
|
+
|
16
|
+
/**
|
17
|
+
* \defgroup SparseLU_Module SparseLU module
|
18
|
+
* This module defines a supernodal factorization of general sparse matrices.
|
19
|
+
* The code is fully optimized for supernode-panel updates with specialized kernels.
|
20
|
+
* Please, see the documentation of the SparseLU class for more details.
|
21
|
+
*/
|
22
|
+
|
23
|
+
// Ordering interface
|
24
|
+
#include "OrderingMethods"
|
25
|
+
|
26
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
27
|
+
|
28
|
+
#include "src/SparseLU/SparseLU_gemm_kernel.h"
|
29
|
+
|
30
|
+
#include "src/SparseLU/SparseLU_Structs.h"
|
31
|
+
#include "src/SparseLU/SparseLU_SupernodalMatrix.h"
|
32
|
+
#include "src/SparseLU/SparseLUImpl.h"
|
33
|
+
#include "src/SparseCore/SparseColEtree.h"
|
34
|
+
#include "src/SparseLU/SparseLU_Memory.h"
|
35
|
+
#include "src/SparseLU/SparseLU_heap_relax_snode.h"
|
36
|
+
#include "src/SparseLU/SparseLU_relax_snode.h"
|
37
|
+
#include "src/SparseLU/SparseLU_pivotL.h"
|
38
|
+
#include "src/SparseLU/SparseLU_panel_dfs.h"
|
39
|
+
#include "src/SparseLU/SparseLU_kernel_bmod.h"
|
40
|
+
#include "src/SparseLU/SparseLU_panel_bmod.h"
|
41
|
+
#include "src/SparseLU/SparseLU_column_dfs.h"
|
42
|
+
#include "src/SparseLU/SparseLU_column_bmod.h"
|
43
|
+
#include "src/SparseLU/SparseLU_copy_to_ucol.h"
|
44
|
+
#include "src/SparseLU/SparseLU_pruneL.h"
|
45
|
+
#include "src/SparseLU/SparseLU_Utils.h"
|
46
|
+
#include "src/SparseLU/SparseLU.h"
|
47
|
+
|
48
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
49
|
+
|
50
|
+
#endif // EIGEN_SPARSELU_MODULE_H
|
@@ -0,0 +1,36 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
5
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
6
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
7
|
+
|
8
|
+
#ifndef EIGEN_SPARSEQR_MODULE_H
|
9
|
+
#define EIGEN_SPARSEQR_MODULE_H
|
10
|
+
|
11
|
+
#include "SparseCore"
|
12
|
+
#include "OrderingMethods"
|
13
|
+
#include "src/Core/util/DisableStupidWarnings.h"
|
14
|
+
|
15
|
+
/** \defgroup SparseQR_Module SparseQR module
|
16
|
+
* \brief Provides QR decomposition for sparse matrices
|
17
|
+
*
|
18
|
+
* This module provides a simplicial version of the left-looking Sparse QR decomposition.
|
19
|
+
* The columns of the input matrix should be reordered to limit the fill-in during the
|
20
|
+
* decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end.
|
21
|
+
* See the \link OrderingMethods_Module OrderingMethods\endlink module for the list
|
22
|
+
* of built-in and external ordering methods.
|
23
|
+
*
|
24
|
+
* \code
|
25
|
+
* #include <Eigen/SparseQR>
|
26
|
+
* \endcode
|
27
|
+
*
|
28
|
+
*
|
29
|
+
*/
|
30
|
+
|
31
|
+
#include "src/SparseCore/SparseColEtree.h"
|
32
|
+
#include "src/SparseQR/SparseQR.h"
|
33
|
+
|
34
|
+
#include "src/Core/util/ReenableStupidWarnings.h"
|
35
|
+
|
36
|
+
#endif
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
2
|
+
// for linear algebra.
|
3
|
+
//
|
4
|
+
// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
|
5
|
+
// Copyright (C) 2009 Hauke Heibel <hauke.heibel@googlemail.com>
|
6
|
+
//
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
10
|
+
|
11
|
+
#ifndef EIGEN_STDDEQUE_MODULE_H
|
12
|
+
#define EIGEN_STDDEQUE_MODULE_H
|
13
|
+
|
14
|
+
#include "Core"
|
15
|
+
#include <deque>
|
16
|
+
|
17
|
+
#if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */
|
18
|
+
|
19
|
+
#define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...)
|
20
|
+
|
21
|
+
#else
|
22
|
+
|
23
|
+
#include "src/StlSupport/StdDeque.h"
|
24
|
+
|
25
|
+
#endif
|
26
|
+
|
27
|
+
#endif // EIGEN_STDDEQUE_MODULE_H
|