Mackey  V3.3
A C++ library for computing RO(G) graded homology
Space.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "Point.hpp"
3 
6 
7 namespace mackey {
8 
23  template<typename space_t, typename group_t>
24  class Space {
25  typedef typename group_t::rank_t rank_t;
26  typedef typename group_t::diff_t diff_t;
27  public:
28 
30  const auto& getChains();
31 
33  const auto& getCoChains();
35  auto ROHomology(int level, const std::vector<int>& homologysphere);
36 
38  auto ROHomology(const std::vector<int>& homologysphere);
39 
41  auto ROCohomology(int level, const std::vector<int>& cohomologysphere);
42 
44  auto ROCohomology(const std::vector<int>& cohomologysphere);
45 
46 
47  protected:
50  std::vector<rank_t> cells;
51 
55  int index;
56  equivariant_index() = default;
59  };
60 
64  int index;
65  nonequivariant_index() = default;
68  };
69 
73 
76 
82  };
83 
92  auto boundary(int dimension_domain, equivariant_index cell);
93 
96  int64_t estimate_nonzero_entries(int dimension_domain);
97 
100 
101  private:
102 
103  auto getROChains(const std::vector<int>& sphere);
104  auto getROCoChains(const std::vector<int>& sphere);
105  diff_t getdiff(int domain);
106  void setcomplexes();
107  Chains<rank_t, diff_t> complex, cocomplex;
108 
109 
110  };
111 
112 }
113 #include "impl/Space.ipp"
Contains the methods computing the RO(G) homology of a point.
An equivariant space with an equivariant cellular decomposition.
Definition: Space.hpp:24
const auto & getChains()
Returns const reference to the equivariant cellular chain complex of the space.
auto ROHomology(int level, const std::vector< int > &homologysphere)
Returns where =level and =homologysphere are provided.
equivariant_index convert(nonequivariant_index n, int dimension) const
Converts nonequivariant index to equivariant one given dimension.
auto ROCohomology(const std::vector< int > &cohomologysphere)
Returns where =cohomologysphere is provided.
nonequivariant_index action(nonequivariant_index n, int dimension) const
Produces g*n given cell n.
auto ROHomology(const std::vector< int > &homologysphere)
Returns where =homologysphere is provided.
const auto & getCoChains()
Returns const reference to the equivariant cellular cochain complex of the space.
auto ROCohomology(int level, const std::vector< int > &cohomologysphere)
Returns where =level and =cohomologysphere are provided.
int64_t estimate_nonzero_entries(int dimension_domain)
An estimate of the nonzero entries of the differential matrix at the given dimension....
nonequivariant_index convert(equivariant_index e, int dimension) const
Converts equivariant index to nonequivariant one given cell.
auto boundary(int dimension_domain, equivariant_index cell)
The boundary map of each cell.
std::vector< rank_t > cells
The equivariant cells in each dimension. Needs to be constructed in any child class!
Definition: Space.hpp:50
Everything in this library is under this namespace.
Definition: Box.hpp:9
typename T::Scalar scalar_t
Scalar of matrix.
Definition: Aliases.hpp:14
int dimension(const deg_t &sphere)
Compute the dimension of a representation sphere.
A pair of a cell and a coefficient.
Definition: Space.hpp:79
scalar_t< diff_t > coefficient
Definition: Space.hpp:81
nonequivariant_index cell
Definition: Space.hpp:80
The equivariant index of a cell.
Definition: Space.hpp:54
int index
index number
Definition: Space.hpp:55
equivariant_index(int index)
Direct initialization.
The nonequivariant index of a cell.
Definition: Space.hpp:63
int index
index number
Definition: Space.hpp:64
nonequivariant_index(int index)
Direct initialization.