Mackey  V3.3
A C++ library for computing RO(G) graded homology
Aliases.hpp
Go to the documentation of this file.
1 #pragma once
2 #include <Eigen/Dense>
3 #include <Eigen/Sparse>
4 #include "SFINAE.hpp"
5 
8 
9 
10 namespace mackey {
11 
13  template<typename T>
14  using scalar_t = typename T::Scalar;
15 
17  template<typename T>
18  using storage_t = typename T::StorageIndex;
19 
21  template<typename T>
22  using row_vector_t = Eigen::Matrix<scalar_t<T>,1,-1>;
23 
25  template<typename T>
26  using col_vector_t = Eigen::Matrix<scalar_t<T>, -1, 1>;
27 
29  template<typename T>
30  using dense_t= Eigen::Matrix<scalar_t<T>,-1,-1>;
31 
33  template<typename T>
34  using sparse_t = Eigen::SparseMatrix<scalar_t<T>, 0, storage_t<T>>;
35 
36  template<typename T>
37  using row_major_t = std::conditional<SFINAE::is_Dense<T>::value, Eigen::Matrix<scalar_t<T>, -1, -1,1>, Eigen::SparseMatrix<scalar_t<T>, 1, storage_t<T>>>;
38 
39  template<typename T>
40  using col_major_t = std::conditional<SFINAE::is_Dense<T>::value, Eigen::Matrix<scalar_t<T>, -1, -1>, Eigen::SparseMatrix<scalar_t<T>, 0, storage_t<T>>>;
41 
43  template<typename T>
44  using triplet_t = Eigen::Triplet<scalar_t<T>, storage_t<T>>;
45 
46  template<typename, typename>
47  struct Arrow;
48 
49  template<typename, typename>
50  class Chains;
51 
52  template<typename, typename>
53  class Junction;
54 
56  template<typename T>
58 
60  template<typename T>
62 
64  template<typename T>
66 
67  template<typename, typename>
68  class Homology;
69 
71  template<typename rank_t, typename diff_t>
73 
74 }
Contains all the SFINAE tricks.
A chain complex.
Definition: Chains.hpp:31
The Homology of a Junction.
Definition: Homology.hpp:19
col_vector_t< diff_t_C > gen_t
The dense type of our generators (a column in the generator matrix, always dense for convenience)
Definition: Homology.hpp:29
Consisting of an entering and an exiting differential.
Definition: Chains.hpp:69
Everything in this library is under this namespace.
Definition: Box.hpp:9
Eigen::Matrix< scalar_t< T >, -1, 1 > col_vector_t
Dense column matrix.
Definition: Aliases.hpp:26
typename T::Scalar scalar_t
Scalar of matrix.
Definition: Aliases.hpp:14
Eigen::SparseMatrix< scalar_t< T >, 0, storage_t< T > > sparse_t
Sparse column major.
Definition: Aliases.hpp:34
std::conditional< SFINAE::is_Dense< T >::value, Eigen::Matrix< scalar_t< T >, -1, -1, 1 >, Eigen::SparseMatrix< scalar_t< T >, 1, storage_t< T > >> row_major_t
Definition: Aliases.hpp:37
std::conditional< SFINAE::is_Dense< T >::value, Eigen::Matrix< scalar_t< T >, -1, -1 >, Eigen::SparseMatrix< scalar_t< T >, 0, storage_t< T > >> col_major_t
Definition: Aliases.hpp:40
Eigen::Triplet< scalar_t< T >, storage_t< T > > triplet_t
Eigen triplets type.
Definition: Aliases.hpp:44
typename Homology< rank_t, diff_t >::gen_t gen_t
Type of generators in homology.
Definition: Aliases.hpp:72
Eigen::Matrix< scalar_t< T >, 1,-1 > row_vector_t
Dense row matrix.
Definition: Aliases.hpp:22
typename T::StorageIndex storage_t
Storage type of matrix.
Definition: Aliases.hpp:18
Eigen::Matrix< scalar_t< T >,-1,-1 > dense_t
Dense column major.
Definition: Aliases.hpp:30
A differential with domain and range.
Definition: Chains.hpp:13