TemplateGroupTheory.h File Reference

Go to the source code of this file.

Classes

struct  Eigen::internal::group_theory::strip_identities< Equality, id, type_list< t, ts... > >
 
struct  Eigen::internal::group_theory::strip_identities< Equality, id, type_list< EIGEN_TPL_PP_SPEC_HACK_USE(ts)> >
 
class  Eigen::internal::group_theory::dimino_first_step_elements_helper< Multiply, Equality, id, g, current_element, elements, dont_add_current_element >
 Recursive template that adds powers of the first generator to the list of group elements. More...
 
struct  Eigen::internal::group_theory::dimino_first_step_elements_helper< Multiply, Equality, id, g, current_element, elements, true >
 
class  Eigen::internal::group_theory::dimino_first_step_elements< Multiply, Equality, id, generators >
 Add all powers of the first generator to the list of group elements. More...
 
class  Eigen::internal::group_theory::dimino_get_coset_elements< Multiply, sub_group_elements, new_coset_rep, generate_coset >
 Generate all elements of a specific coset. More...
 
struct  Eigen::internal::group_theory::dimino_get_coset_elements< Multiply, sub_group_elements, new_coset_rep, false >
 
struct  Eigen::internal::group_theory::dimino_add_cosets_for_rep< Multiply, Equality, id, sub_group_elements, elements, type_list< g, gs... >, rep_element, sub_group_size >
 
struct  Eigen::internal::group_theory::dimino_add_cosets_for_rep< Multiply, Equality, id, sub_group_elements, elements, type_list< EIGEN_TPL_PP_SPEC_HACK_USE(empty)>, rep_element, sub_group_size >
 
class  Eigen::internal::group_theory::dimino_add_all_coset_spaces< Multiply, Equality, id, sub_group_elements, elements, generators, sub_group_size, rep_pos, stop_condition >
 Recursive template for adding all coset spaces for a new generator. More...
 
struct  Eigen::internal::group_theory::dimino_add_all_coset_spaces< Multiply, Equality, id, sub_group_elements, elements, generators, sub_group_size, rep_pos, true >
 
class  Eigen::internal::group_theory::dimino_add_generator< Multiply, Equality, id, elements, generators_done, current_generator, redundant >
 Enlarge the group by adding a new generator. More...
 
struct  Eigen::internal::group_theory::dimino_add_generator< Multiply, Equality, id, elements, generators_done, current_generator, true >
 
class  Eigen::internal::group_theory::dimino_add_remaining_generators< Multiply, Equality, id, generators_done, remaining_generators, elements >
 Recursive template that adds all remaining generators to a group. More...
 
struct  Eigen::internal::group_theory::dimino_add_remaining_generators< Multiply, Equality, id, generators_done, type_list<>, elements >
 
class  Eigen::internal::group_theory::enumerate_group_elements_noid< Multiply, Equality, id, generators, initial_global_flags >
 Helper template that implements group element enumeration. More...
 
struct  Eigen::internal::group_theory::enumerate_group_elements_noid< Multiply, Equality, id, type_list<>, initial_global_flags >
 
class  Eigen::internal::group_theory::enumerate_group_elements< Multiply, Equality, id, Generators_ >
 Enumerate all elements in a finite group. More...
 

Namespaces

 Eigen
 Namespace containing all symbols from the Eigen library.
 
 Eigen::internal
 Namespace containing low-level routines from the Eigen library.
 
 Eigen::internal::group_theory
 

Detailed Description

This file contains C++ templates that implement group theory algorithms.

The algorithms allow for a compile-time analysis of finite groups.

Currently only Dimino's algorithm is implemented, which returns a list of all elements in a group given a set of (possibly redundant) generators. (One could also do that with the so-called orbital algorithm, but that is much more expensive and usually has no advantages.)