#include <FiniteGroup.h>
Public Types | |
| typedef T | element_type |
| The type of elements of the supposed group. | |
| typedef std::vector< T > | ElementsList |
| A type definition for a list of elements. | |
| typedef FiniteGroup< T, BinaryFunction > | group_type |
| Type of this class. | |
Public Member Functions | |
| FiniteGroup () | |
| ~FiniteGroup () | |
| void | setElements (const ElementsList &elements, int identityIndex) |
| unsigned int | size () const |
| element_type | identity () const |
| void | display (std::ostream &stream=std::cout) const |
| bool | checkIdentity () const |
| bool | checkAssociative () const |
| bool | checkInverses () const |
| bool | checkClosure () const |
| bool | isGroup () const |
| void | getSubGroups () const |
Definition at line 25 of file FiniteGroup.h.
| FiniteGroup< T, BinaryFunction >::FiniteGroup | ( | ) | [inline] |
Default constructor
Definition at line 47 of file FiniteGroup.h.
| FiniteGroup< T, BinaryFunction >::~FiniteGroup | ( | ) | [inline] |
Destructor
Definition at line 53 of file FiniteGroup.h.
| void FiniteGroup< T, BinaryFunction >::setElements | ( | const ElementsList & | elements, | |
| int | identityIndex | |||
| ) | [inline] |
Convenience method to set the list of elements
| elements | list of elements to be copied into member elements list | |
| identityIndex | the index of the identity element in the elements list |
Definition at line 62 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::getSubGroups().
Here is the caller graph for this function:

| unsigned int FiniteGroup< T, BinaryFunction >::size | ( | ) | const [inline] |
Return the order of this group
Definition at line 71 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::getSubGroups().
Here is the caller graph for this function:

| element_type FiniteGroup< T, BinaryFunction >::identity | ( | ) | const [inline] |
Return the identity element in the group. In this implementation the identity element must be the first element in the list of elements.
Definition at line 81 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::checkIdentity(), and FiniteGroup< T, BinaryFunction >::checkInverses().
Here is the caller graph for this function:

| void FiniteGroup< T, BinaryFunction >::display | ( | std::ostream & | stream = std::cout |
) | const [inline] |
Display the elements to a stream.
| stream | stream to display to |
Definition at line 89 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::getSubGroups(), and FiniteGroup< T, BinaryFunction >::isGroup().
Here is the caller graph for this function:

| bool FiniteGroup< T, BinaryFunction >::checkIdentity | ( | ) | const [inline] |
Check that the element returned by identity() is indeed the identity element.
Definition at line 103 of file FiniteGroup.h.
References FiniteGroup< T, BinaryFunction >::identity().
Referenced by FiniteGroup< T, BinaryFunction >::isGroup().
Here is the call graph for this function:

Here is the caller graph for this function:

| bool FiniteGroup< T, BinaryFunction >::checkAssociative | ( | ) | const [inline] |
Check if the binary operation has the associativity property.
Definition at line 122 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::isGroup().
Here is the caller graph for this function:

| bool FiniteGroup< T, BinaryFunction >::checkInverses | ( | ) | const [inline] |
Check if each element in the group has an inverse element.
Definition at line 156 of file FiniteGroup.h.
References FiniteGroup< T, BinaryFunction >::identity().
Referenced by FiniteGroup< T, BinaryFunction >::isGroup().
Here is the call graph for this function:

Here is the caller graph for this function:

| bool FiniteGroup< T, BinaryFunction >::checkClosure | ( | ) | const [inline] |
Check if the binary operation is closed with respect to the set of elements.
Definition at line 188 of file FiniteGroup.h.
Referenced by FiniteGroup< T, BinaryFunction >::isGroup().
Here is the caller graph for this function:

| bool FiniteGroup< T, BinaryFunction >::isGroup | ( | ) | const [inline] |
Check if the list of elements along with the supplied binary operation form a group.
Definition at line 209 of file FiniteGroup.h.
References FiniteGroup< T, BinaryFunction >::checkAssociative(), FiniteGroup< T, BinaryFunction >::checkClosure(), FiniteGroup< T, BinaryFunction >::checkIdentity(), FiniteGroup< T, BinaryFunction >::checkInverses(), and FiniteGroup< T, BinaryFunction >::display().
Referenced by FiniteGroup< T, BinaryFunction >::getSubGroups().
Here is the call graph for this function:

Here is the caller graph for this function:

| void FiniteGroup< T, BinaryFunction >::getSubGroups | ( | ) | const [inline] |
Enumerate and display all subgroups of this group.
Definition at line 221 of file FiniteGroup.h.
References FiniteGroup< T, BinaryFunction >::display(), FiniteGroup< T, BinaryFunction >::isGroup(), Combinations::next(), FiniteGroup< T, BinaryFunction >::setElements(), IndexSet::size(), FiniteGroup< T, BinaryFunction >::size(), and Combinations::start().
Here is the call graph for this function:
