Mackey  V3.3
A C++ library for computing RO(G) graded homology
C2n.hpp
Go to the documentation of this file.
1 #pragma once
3 #include "Utility/General.hpp"
4 
7 
8 namespace mackey
9 {
10 
12  template<int N, typename...>
13  struct C2Power;
14 
16  template<int N, typename _rank, typename _diff>
18  typedef _rank rank_t;
19  typedef _diff diff_t;
20  static constexpr int prime = 2;
21  static constexpr int power = N;
22  static const std::array<int, N> sphere_dimensions;
23  template <typename deg_t>
24  static Chains<rank_t, diff_t> PositiveChains(const deg_t&, int);
25  };
26 
28  template<int N, typename coeff>
29  struct C2Power<N, coeff> : public C2Power<N, Eigen::Matrix<short,1,-1>, Eigen::SparseMatrix<coeff>> {
30  typedef Eigen::Matrix<short, 1, -1> rank_t;
31  typedef Eigen::SparseMatrix<coeff> diff_t;
32  };
33 
35  template <typename ... Args>
36  using C2 = C2Power<1, Args...>;
37 
39  template <typename ... Args>
40  using C4 = C2Power<2, Args...>;
41 
43  template <typename ... Args>
44  using C8= C2Power<3, Args...>;
45 
47  template <typename ... Args>
48  using C16 = C2Power<4, Args...>;
49 
50 }
51 
52 #include "impl/C2n.ipp"
Contains the classes mackey::Arrow, mackey::Chains and mackey::Junction.
Contains general functions and vector overloads independent of everything else.
Everything in this library is under this namespace.
Definition: Box.hpp:9
Groups given rank and differential types.
Definition: C2n.hpp:17
_rank rank_t
Definition: C2n.hpp:18
_diff diff_t
Definition: C2n.hpp:19
static const std::array< int, N > sphere_dimensions
Definition: C2n.hpp:22
static Chains< rank_t, diff_t > PositiveChains(const deg_t &, int)
Groups given coefficient type.
Definition: C2n.hpp:29
Eigen::Matrix< short, 1, -1 > rank_t
Definition: C2n.hpp:30
Eigen::SparseMatrix< coeff > diff_t
Definition: C2n.hpp:31
Template for groups .
Definition: C2n.hpp:13