13 template<
typename group_t>
17 std::vector<std::vector<Green<group_t>>>
Greens;
19 std::vector<std::vector<int>>
degree;
28 template<
typename group_t>
30 typedef typename group_t::rank_t rank_t;
31 typedef typename group_t::diff_t diff_t;
53 MultTable(
int,
const std::vector<int>&,
const std::vector<int>&,
const std::vector<std::vector<int>>&);
67 std::vector<int>
getsphere(
const std::vector<int>& deg)
const;
72 std::vector<Chains<rank_t, diff_t>> basicChains;
73 std::map<int, Chains<rank_t, diff_t>> sphereChains;
74 void getIrreducibleChains();
75 void multiply_all_indices();
76 void multiply(
int,
int);
79 void compute(
const std::vector<std::pair<int, int>>&);
82 #include "impl/Mult_Table.ipp"
Contains general functions and vector overloads independent of everything else.
Contains open MP macros that enable and control multithreading.
Contains the methods computing the RO(G) homology of a point.
The result of multiplying generators in a Green functor.
Definition: Green.hpp:25
General template class for hashing vectors.
Definition: General.hpp:130
Two levels of a Mackey functor, used for identification.
Definition: Identify.hpp:13
Forms the multiplication table.
Definition: Mult_Table.hpp:29
int getdegreeindex(const std::vector< int > &) const
Retrieve the degree index of the given degree. Returns -1 if no such degree can be found.
std::vector< int > getsphere(const std::vector< int > °) const
Isolate sphere from the degree vector (i.e. get everything but first entry)
bool degreewithinrange(const std::vector< int > &) const
Checks if given degree is within the computed range.
MultTable(const MultTableData< group_t > &MTD)
Constructs multiplication table given the fundamental data (say after serialization)
Green< group_t > triple_product(int i, int j1, int j2) const
MultTable(int, const std::vector< int > &, const std::vector< int > &, const std::vector< std::vector< int >> &)
Constructs the multiplication table given the maximum and minimum spheres and the basic irreducibles.
MultTable(MultTableData< group_t > &&MTD)
Constructs multiplication table given the fundamental data (say after serialization)
Everything in this library is under this namespace.
Definition: Box.hpp:9
The data of the multiplication table.
Definition: Mult_Table.hpp:14
std::vector< std::vector< int > > basicIrreducibles
The basic irreducibles we use to produce the factorizations (eg Euler and orientation classes)
Definition: Mult_Table.hpp:24
std::vector< std::vector< Green< group_t > > > Greens
Each entry in the multiplication table.
Definition: Mult_Table.hpp:17
std::vector< std::vector< int > > degree
Maps each index to the corresponding degree.
Definition: Mult_Table.hpp:19
std::map< std::vector< int >, int > antidegree
Maps each degree to the corresponding index.
Definition: Mult_Table.hpp:20
Eigen::Matrix< int, -1, -1 > index_product
Maps each index and irreducible to the index of their product.
Definition: Mult_Table.hpp:21
std::vector< int > minsphere
The lower bound on the range of our spheres.
Definition: Mult_Table.hpp:22
std::map< std::vector< int >, IDGenerators< typename group_t::rank_t > > NonZeroHomology
Definition: Mult_Table.hpp:16
int level
The Mackey functor level we are working in ///.
Definition: Mult_Table.hpp:15
std::vector< int > maxsphere
The upper bound on the range of our spheres.
Definition: Mult_Table.hpp:23
std::map< std::array< int, 3 >, Green< group_t > > tripleGreens
Triple products used when all other identification methods fail.
Definition: Mult_Table.hpp:18