Mackey  V3.1
A C++ library for computing RO(G) graded homology
Factorization< group_t > Class Template Reference

Factorizes generators into the given basic irreducibles and sources. More...

#include <Factorization.hpp>

Inheritance diagram for Factorization< group_t >:
[legend]
Collaboration diagram for Factorization< group_t >:
[legend]

Public Member Functions

std::vector< std::string > getname (const std::vector< int > &) const
 Retrieve the factorization of all elements in a given degree. More...
 
std::string getname (size_t) const
 Retrieve the factorization of the i-th element. More...
 
 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. More...
 
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. More...
 
 Factorization (Mult_Table< group_t > &M, const std::vector< std::string > &basicIrr_names)
 Constructor given the multiplication table. More...
 
- Public Member Functions inherited from MultGraph< group_t >
std::vector< int > getdegree (int i) const
 Retrieve the degree of the i-th generator. More...
 
Eigen::Matrix< int, 1, -1 > getelement (int i) const
 Retrieve the element the i-th generator corresponds to. More...
 
int getelementindex (const std::vector< int > &deg, const rank_t &elmnt) const
 Retrieve the element index of the given degree and element. Returns -1 if no such degree can be found. More...
 
- Public Member Functions inherited from Mult_Table< group_t >
 Mult_Table ()=default
 Default constructor. More...
 
 Mult_Table (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. More...
 
int getdegreeindex (const std::vector< int > &) const
 Retrieve the degree index of the given degree. Returns -1 if no such degree can be found. More...
 

Public Attributes

const std::vector< std::string > basicIrr_names
 The names of the basic irreducibles. More...
 
minimize_color_alteration_and_length< graph_tshortest_paths
 The paths from sources to all nodes that minimize multiplication/division alteration and overall length. More...
 
- Public Attributes inherited from MultGraph< group_t >
int number_of_generators
 The number of generators in the multiplication graph. More...
 
graph_t graph
 

Additional Inherited Members

- Public Types inherited from MultGraph< group_t >
typedef Graph< Neighborhood< size_t, bicolored_edge_with_id, std::vector > > graph_t
 
- Protected Member Functions inherited from Mult_Graph_Identify< group_t >
void pass_product (const std::vector< int > &, bool)
 Uses triple box products to possibly identify the products of given generators if identification failed before on them. More...
 
void pass_division (const std::vector< int > &, bool)
 Uses triple box products to possibly identify the products landing in degrees of given generators if identification failed before on them. More...
 
void pass_all_unidentified (bool)
 Uses triple box products to possibly identify ALL instances where identification failed before. Use with care. More...
 
 Mult_Graph_Identify (Mult_Table< group_t > &M)
 Uses the Multiplication Graph constructor. More...
 
 Mult_Graph_Identify (int level, const std::vector< int > &minsphere, const std::vector< int > &maxsphere, const std::vector< std::vector< int >> &basicIrreducibles)
 Uses the Multiplication Graph constructor. More...
 
- Protected Member Functions inherited from MultGraph< group_t >
 MultGraph (int, const std::vector< int > &, const std::vector< int > &, const std::vector< std::vector< int >> &)
 Constructs the multiplication graph given the maximum and minimum spheres and the basic irreducibles. More...
 
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]. More...
 
 MultGraph (Mult_Table< group_t > &)
 Constructs the multiplication graph given the multiplication table. More...
 
- Protected Member Functions inherited from Mult_Table< group_t >
std::vector< int > getsphere (const std::vector< int > &deg)
 Isolate sphere from the degree vector (i.e. get everything but first entry) More...
 
Green< group_t > triple_product (int, int, int)
 Multiplies the given index with two basic irreducibles. Only used by Mult_Graph_Identify when all other identification techniques fail. More...
 
- Protected Attributes inherited from Mult_Graph_Identify< group_t >
bool can_do_more
 1 if there are more triple products that can be computed for the disconnected generators More...
 
- Protected Attributes inherited from MultGraph< group_t >
std::vector< rank_t > element
 An element (linear combination of generators) in each NonZeroHomology group of the table. More...
 
std::vector< int > tracker
 Maps element index to degree index. More...
 
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 equal then compares the elements first to last entry. More...
 
- Protected Attributes inherited from Mult_Table< group_t >
int level
 The Mackey functor level we are working in. More...
 
std::map< std::vector< int >, IDGenerators< rank_t > > NonZeroHomology
 
std::vector< std::vector< int > > degree
 Maps each index of NonZeroHomology to the corresponding degree. More...
 
std::map< std::vector< int >, int > antidegree
 Maps each degree to the corresponding index of NonZeroHomology. More...
 
Eigen::Matrix< int, -1, -1 > index_product
 Maps each index and irreducible to the index of their product. More...
 
std::vector< int > minsphere
 The lower bound on the range of our spheres. More...
 
std::vector< int > maxsphere
 The upper bound on the range of our spheres. More...
 
std::vector< std::vector< int > > basicIrreducibles
 The basic irreducibles we use to produce the factorizations (eg Euler and orientation classes) More...
 
std::vector< std::vector< Green< group_t > > > Greens
 Each entry in the multiplication table. More...
 
std::map< std::array< int, 3 >, Green< group_t > > tripleGreens
 The tripleGreens set and used by Mult_Graph_Identify when all other identification techniques fail. More...
 

Detailed Description

template<typename group_t>
class Mackey::Factorization< group_t >

Factorizes generators into the given basic irreducibles and sources.

Constructor & Destructor Documentation

◆ Factorization() [1/2]

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() [2/2]

Factorization ( Mult_Table< group_t > &  M,
const std::vector< std::string > &  basicIrr_names 
)

Constructor given the multiplication table.

Member Function Documentation

◆ getname() [1/2]

std::vector<std::string> getname ( const std::vector< int > &  ) const

Retrieve the factorization of all elements in a given degree.

◆ getname() [2/2]

std::string getname ( size_t  ) const

Retrieve the factorization of the i-th element.

◆ compute_with_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.

Member Data Documentation

◆ basicIrr_names

const std::vector<std::string> basicIrr_names

The names of the basic irreducibles.

◆ shortest_paths

The paths from sources to all nodes that minimize multiplication/division alteration and overall length.


The documentation for this class was generated from the following file: