tomoto 0.3.0-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +45 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +162 -0
  5. data/ext/tomoto/ct.cpp +58 -0
  6. data/ext/tomoto/dmr.cpp +69 -0
  7. data/ext/tomoto/dt.cpp +91 -0
  8. data/ext/tomoto/extconf.rb +34 -0
  9. data/ext/tomoto/gdmr.cpp +42 -0
  10. data/ext/tomoto/hdp.cpp +47 -0
  11. data/ext/tomoto/hlda.cpp +71 -0
  12. data/ext/tomoto/hpa.cpp +32 -0
  13. data/ext/tomoto/lda.cpp +281 -0
  14. data/ext/tomoto/llda.cpp +33 -0
  15. data/ext/tomoto/mglda.cpp +81 -0
  16. data/ext/tomoto/pa.cpp +32 -0
  17. data/ext/tomoto/plda.cpp +33 -0
  18. data/ext/tomoto/slda.cpp +48 -0
  19. data/ext/tomoto/tomoto.cpp +48 -0
  20. data/ext/tomoto/utils.h +30 -0
  21. data/lib/tomoto/2.7/tomoto.so +0 -0
  22. data/lib/tomoto/3.0/tomoto.so +0 -0
  23. data/lib/tomoto/3.1/tomoto.so +0 -0
  24. data/lib/tomoto/ct.rb +24 -0
  25. data/lib/tomoto/dmr.rb +27 -0
  26. data/lib/tomoto/dt.rb +15 -0
  27. data/lib/tomoto/gdmr.rb +15 -0
  28. data/lib/tomoto/hdp.rb +11 -0
  29. data/lib/tomoto/hlda.rb +56 -0
  30. data/lib/tomoto/hpa.rb +11 -0
  31. data/lib/tomoto/lda.rb +181 -0
  32. data/lib/tomoto/llda.rb +15 -0
  33. data/lib/tomoto/mglda.rb +15 -0
  34. data/lib/tomoto/pa.rb +11 -0
  35. data/lib/tomoto/plda.rb +15 -0
  36. data/lib/tomoto/slda.rb +37 -0
  37. data/lib/tomoto/version.rb +3 -0
  38. data/lib/tomoto.rb +27 -0
  39. data/vendor/EigenRand/EigenRand/EigenRand +24 -0
  40. data/vendor/EigenRand/LICENSE +21 -0
  41. data/vendor/EigenRand/README.md +426 -0
  42. data/vendor/eigen/COPYING.APACHE +203 -0
  43. data/vendor/eigen/COPYING.BSD +26 -0
  44. data/vendor/eigen/COPYING.GPL +674 -0
  45. data/vendor/eigen/COPYING.LGPL +502 -0
  46. data/vendor/eigen/COPYING.MINPACK +51 -0
  47. data/vendor/eigen/COPYING.MPL2 +373 -0
  48. data/vendor/eigen/COPYING.README +18 -0
  49. data/vendor/eigen/Eigen/Cholesky +45 -0
  50. data/vendor/eigen/Eigen/CholmodSupport +48 -0
  51. data/vendor/eigen/Eigen/Core +384 -0
  52. data/vendor/eigen/Eigen/Dense +7 -0
  53. data/vendor/eigen/Eigen/Eigen +2 -0
  54. data/vendor/eigen/Eigen/Eigenvalues +60 -0
  55. data/vendor/eigen/Eigen/Geometry +59 -0
  56. data/vendor/eigen/Eigen/Householder +29 -0
  57. data/vendor/eigen/Eigen/IterativeLinearSolvers +48 -0
  58. data/vendor/eigen/Eigen/Jacobi +32 -0
  59. data/vendor/eigen/Eigen/KLUSupport +41 -0
  60. data/vendor/eigen/Eigen/LU +47 -0
  61. data/vendor/eigen/Eigen/MetisSupport +35 -0
  62. data/vendor/eigen/Eigen/OrderingMethods +70 -0
  63. data/vendor/eigen/Eigen/PaStiXSupport +49 -0
  64. data/vendor/eigen/Eigen/PardisoSupport +35 -0
  65. data/vendor/eigen/Eigen/QR +50 -0
  66. data/vendor/eigen/Eigen/QtAlignedMalloc +39 -0
  67. data/vendor/eigen/Eigen/SPQRSupport +34 -0
  68. data/vendor/eigen/Eigen/SVD +50 -0
  69. data/vendor/eigen/Eigen/Sparse +34 -0
  70. data/vendor/eigen/Eigen/SparseCholesky +37 -0
  71. data/vendor/eigen/Eigen/SparseCore +69 -0
  72. data/vendor/eigen/Eigen/SparseLU +50 -0
  73. data/vendor/eigen/Eigen/SparseQR +36 -0
  74. data/vendor/eigen/Eigen/StdDeque +27 -0
  75. data/vendor/eigen/Eigen/StdList +26 -0
  76. data/vendor/eigen/Eigen/StdVector +27 -0
  77. data/vendor/eigen/Eigen/SuperLUSupport +64 -0
  78. data/vendor/eigen/Eigen/UmfPackSupport +40 -0
  79. data/vendor/eigen/README.md +5 -0
  80. data/vendor/eigen/bench/README.txt +55 -0
  81. data/vendor/eigen/bench/btl/COPYING +340 -0
  82. data/vendor/eigen/bench/btl/README +154 -0
  83. data/vendor/eigen/bench/tensors/README +20 -0
  84. data/vendor/eigen/blas/README.txt +6 -0
  85. data/vendor/eigen/ci/README.md +56 -0
  86. data/vendor/eigen/demos/mandelbrot/README +10 -0
  87. data/vendor/eigen/demos/mix_eigen_and_c/README +9 -0
  88. data/vendor/eigen/demos/opengl/README +13 -0
  89. data/vendor/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md +1815 -0
  90. data/vendor/eigen/unsupported/README.txt +50 -0
  91. data/vendor/tomotopy/LICENSE +21 -0
  92. data/vendor/tomotopy/README.kr.rst +512 -0
  93. data/vendor/tomotopy/README.rst +516 -0
  94. data/vendor/variant/LICENSE +25 -0
  95. data/vendor/variant/LICENSE_1_0.txt +23 -0
  96. data/vendor/variant/README.md +102 -0
  97. 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