Tapkee
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
types.hpp
Go to the documentation of this file.
1 /* This software is distributed under BSD 3-clause license (see LICENSE file).
2  *
3  * Copyright (c) 2012-2013 Sergey Lisitsyn
4  */
5 
6 #ifndef TAPKEE_DEFINES_TYPES_H_
7 #define TAPKEE_DEFINES_TYPES_H_
8 
9 namespace tapkee
10 {
11 #ifdef TAPKEE_CUSTOM_INTERNAL_NUMTYPE
12  typedef TAPKEE_CUSTOM_INTERNAL_NUMTYPE ScalarType;
13 #else
14  typedef double ScalarType;
16 #endif
17  typedef int IndexType;
21  typedef Eigen::Matrix<tapkee::ScalarType,Eigen::Dynamic,1> DenseVector;
23  typedef Eigen::Matrix<tapkee::ScalarType,Eigen::Dynamic,Eigen::Dynamic> DenseMatrix;
27  typedef Eigen::DiagonalMatrix<tapkee::ScalarType,Eigen::Dynamic> DenseDiagonalMatrix;
29  typedef Eigen::SparseMatrix<tapkee::ScalarType> SparseWeightMatrix;
31  typedef Eigen::SparseMatrix<tapkee::ScalarType> SparseMatrix;
33  typedef Eigen::SelfAdjointEigenSolver<tapkee::DenseMatrix> DenseSelfAdjointEigenSolver;
35  typedef Eigen::LDLT<tapkee::DenseMatrix> DenseSolver;
36 #ifdef EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
37  typedef Eigen::SimplicialCholesky<tapkee::SparseWeightMatrix> SparseSolver;
41 #else
42  #if defined(TAPKEE_SUPERLU_AVAILABLE) && defined(TAPKEE_USE_SUPERLU)
43  typedef Eigen::SuperLU<tapkee::SparseWeightMatrix> SparseSolver;
44  #else
45  typedef Eigen::SimplicialLDLT<tapkee::SparseWeightMatrix> SparseSolver;
46  #endif
47 #endif
48 }
49 
50 #endif
Eigen::DiagonalMatrix< tapkee::ScalarType, Eigen::Dynamic > DenseDiagonalMatrix
dense diagonal matrix
Definition: types.hpp:27
Eigen::Matrix< tapkee::ScalarType, Eigen::Dynamic, Eigen::Dynamic > DenseMatrix
dense matrix type (non-overridable)
Definition: types.hpp:23
double ScalarType
default scalar value (can be overrided with TAPKEE_CUSTOM_INTERNAL_NUMTYPE define) ...
Definition: types.hpp:15
Eigen::SparseMatrix< tapkee::ScalarType > SparseWeightMatrix
sparse weight matrix type (non-overridable)
Definition: types.hpp:29
Eigen::Matrix< tapkee::ScalarType, Eigen::Dynamic, 1 > DenseVector
dense vector type (non-overridable)
Definition: types.hpp:21
int IndexType
indexing type (non-overridable) set to int for compatibility with OpenMP 2.0
Definition: types.hpp:19
Eigen::SimplicialLDLT< tapkee::SparseWeightMatrix > SparseSolver
Definition: types.hpp:45
Eigen::SelfAdjointEigenSolver< tapkee::DenseMatrix > DenseSelfAdjointEigenSolver
selfadjoint solver (non-overridable)
Definition: types.hpp:33
Eigen::SparseMatrix< tapkee::ScalarType > SparseMatrix
sparse matrix type (non-overridable)
Definition: types.hpp:31
Eigen::LDLT< tapkee::DenseMatrix > DenseSolver
dense solver (non-overridable)
Definition: types.hpp:35
tapkee::DenseMatrix DenseSymmetricMatrix
dense symmetric matrix (non-overridable, currently just dense matrix, can be improved later) ...
Definition: types.hpp:25