Mackey  V3.3
A C++ library for computing RO(G) graded homology
Factorization.hpp
Go to the documentation of this file.
1 #pragma once
2 #include "Mult_Identify.hpp"
3 
6 
7 namespace mackey {
8 
10  template<typename group_t>
11  class Factorization : public MultGraph<group_t> {
12 
13  typedef typename group_t::rank_t rank_t;
14  typedef typename group_t::diff_t diff_t;
15  using typename MultGraph<group_t>::graph_t;
16  public:
18  const std::vector<std::string> basicIrr_names;
19 
21  std::vector<std::string> getname(const std::vector<int>&) const;
22 
24  std::string getname(size_t) const;
25 
27  Factorization(int, const std::vector<int>&, const std::vector<int>&, const std::vector<std::vector<int>>&, const std::vector<std::string>&);
28 
29 
31  Factorization(const MultTableData<group_t>& MTD, const std::vector<std::string>&);
32 
34  Factorization(MultTableData<group_t>&& MTD, const std::vector<std::string>&);
35 
36 
38  void compute_with_sources(const std::vector<std::vector<int>>&, const std::vector<std::string>&);
39 
41  std::vector<std::vector<int>> disconnected_degrees() const;
42 
45 
48 
49  private:
50  std::string print_power(const std::vector<size_t>& power) const;
51  std::vector<int> sources;
52  std::map<int, std::string> source_names;
53  void set_sources(const std::vector<std::vector<int>>&, const std::vector<std::string>&);
54  std::vector<int> find_disconnected() const;
55  };
56 
57 }
58 #include "impl/Factorization.ipp"
Contains the class mackey::MultIdentify.
Factorizes generators into the given basic irreducibles and sources.
Definition: Factorization.hpp:11
void pass_unidentified()
Uses triple box products to identify generators where identification failed before.
std::vector< std::string > getname(const std::vector< int > &) const
Retrieve the factorization of all elements in a given degree.
MinColorsLength< graph_t > shortest_paths
The paths from sources to all nodes that minimize multiplication/division alteration and overall leng...
Definition: Factorization.hpp:44
Factorization(int, const std::vector< int > &, const std::vector< int > &, const std::vector< std::vector< int >> &, const std::vector< std::string > &)
Form the multiplication table and graph given the max and min spheres and the basic irreducibles.
Factorization(const MultTableData< group_t > &MTD, const std::vector< std::string > &)
Constructs multiplication table given the fundamental data (say after serialization)
const std::vector< std::string > basicIrr_names
The names of the basic irreducibles.
Definition: Factorization.hpp:18
std::string getname(size_t) const
Retrieve the factorization of the i-th element.
std::vector< std::vector< int > > disconnected_degrees() const
Returns the degrees of the generators that could not be connected to the sources.
void compute_with_sources(const std::vector< std::vector< int >> &, const std::vector< std::string > &)
Compute the factorizations using the given sources for the multiplication graph and their given names...
Factorization(MultTableData< group_t > &&MTD, const std::vector< std::string > &)
Constructs multiplication table given the fundamental data (say after serialization)
Dijkstra policy that minimizes the color alterations and length.
Definition: Graph_Policies.hpp:45
The Multiplication Graph created from the Multiplication Table.
Definition: Mult_Graph.hpp:23
Everything in this library is under this namespace.
Definition: Box.hpp:9
The data of the multiplication table.
Definition: Mult_Table.hpp:14