11 namespace implementation_details {
12 struct compareElements;
22 template<
typename group_t>
24 typedef typename group_t::rank_t rank_t;
25 typedef typename group_t::diff_t diff_t;
43 template<
typename ...Args>
73 std::map<std::pair<int, rank_t>, int, implementation_details::compareElements>
antielement;
80 std::set<std::pair<int, int>> unidentified;
81 std::vector<std::vector<int>> zeroproduct;
88 void pass_multiples();
91 int find_and_add_element(
int,
const rank_t&);
97 void connect(
const rank_t&,
int,
int,
int);
99 std::vector<int> other_elements(
int)
const;
102 bool injection(
int,
int)
const;
105 int order(
int i)
const;
114 #include "impl/Mult_Graph.ipp"
Contains the classes mackey::bicolored_edge_with_id, mackey::MinLength, mackey::MinColorsLength.
Contains the classes mackey::MultTableData and mackey::MultTable.
A directed graph.
Definition: Graph.hpp:49
The result of multiplying generators in a Green functor.
Definition: Green.hpp:25
Finds the connectivity of the multiplication graph.
Definition: Mult_Connectivity.hpp:11
The Multiplication Graph created from the Multiplication Table.
Definition: Mult_Graph.hpp:23
std::vector< rank_t > element
An element (linear combination of generators) in each NonZeroHomology group of the table.
Definition: Mult_Graph.hpp:69
std::vector< int > tracker
Maps element index to degree index.
Definition: Mult_Graph.hpp:70
Graph< Neighborhood< size_t, bicolored_edge_with_id, std::vector > > graph_t
Definition: Mult_Graph.hpp:39
std::vector< int > getdegree(int i) const
Retrieve the degree of the i-th generator.
int isMultiple(int i, int j) const
Returns k if element[i]=k*element[j]. Returns 0 if element[a] is not a multiple of element[b].
int getelementindex(const std::vector< int > °, const rank_t &elmnt) const
Retrieve the element index of the given degree and element. Returns -1 if no such degree can be found...
std::map< std::pair< int, rank_t >, int, implementation_details::compareElements > antielement
Maps (degree_index, element)->element_index. The comparator first compares the degree_index and if eq...
Definition: Mult_Graph.hpp:73
Product_Element_Irreducible product_element_irreducible(int i, int j)
Returns the product of element and irreducible.
Eigen::Matrix< int, 1, -1 > getelement(int i) const
Retrieve the element the i-th generator corresponds to.
int number_of_generators
The number of generators in the multiplication graph.
Definition: Mult_Graph.hpp:28
Product_Element_Irreducible product_element_irreducible(int i, int j1, int j2)
Returns the product of element and 2 irreducibles.
MultGraph(Args &&...)
Constructs the multiplication graph given the maximum and minimum spheres and the basic irreducibles.
graph_t graph
Definition: Mult_Graph.hpp:40
std::vector< rank_t > product_candidates(const Product_Element_Irreducible &)
Produces all candidates for the given product.
Provides extra identification methods using triple box products.
Definition: Mult_Identify.hpp:11
Forms the multiplication table.
Definition: Mult_Table.hpp:29
Everything in this library is under this namespace.
Definition: Box.hpp:9
Stores the product of an element and a basic irreducible.
Definition: Mult_Graph.hpp:49
Green< group_t > G
The Green functor at the degree of the product.
Definition: Mult_Graph.hpp:52
rank_t basis
The product as a linear combination in G.
Definition: Mult_Graph.hpp:51
int deg
The degree of the product.
Definition: Mult_Graph.hpp:50