|
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...
|
|
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.)