3.2.4. group.hpp¶
Full path: group/group.hpp
-
template<typename
GroupT
>
conceptGroup
¶ - Associated Types
Requires
Permutation<perm>
andAllocator<allocator>
.Notation
Valid Expressionscg.degree()
, returns an integer with the number of elements the group is defined on.cg.generators()
, returns a non-empty random-access range ofperm
.cg.generator_ptrs()
, returns a random-access range of pointer-like values toperm
. The range and order of the dereferenced pointers must be exactly the range returned bycg.generators()
.cg.get_allocator()
, returns the allocator used by the group.
-
template<typename
GroupT
>
conceptStabilizer
¶ A refinement of the
Group
concept.A stabilizer fixes a specific element in some base group. The user must keep track of this base group and what information has been given to the stabilizer.
Requires
Moveable<GroupT>
.Associated Types-
using
is_accurate
= typename GroupT::is_accurate¶ A type convertible to
std::true_type
orstd::false_type
, denoting whether the group will represent the full stabilizer or if it potentially only represents a proper subgroup of the full stabilizer.
Notation
-
PtrIterator
first
¶ -
PtrIterator
lastOld
¶ -
PtrIterator
lastNew
¶ Iterators over
GroupT::const_pointer
denoting the consequtive rangesfirst
tolastOld
andlastOld
tolastNew
.
-
Callback
callback
¶ A
Callable
accepting three iterator type of equal type. The iterators are the type of pointer iterators given by this group in itscg.generator_ptrs()
method.
Valid Expressionscg.fixed_element()
, returning an element which defines this stablizer.g.add_generators(first, lastOld, lastNew)
: notifies this stabilizer that the base group has been extended with the permutations denoted indirectly bylastOld
tolastNew
. The rangefirst
tolastOld
must be the range previously given to this stabilizer asfirst
tolastNew
. If not previousg.add_generators
call has been made, thenfirst == lastNew
.The stabilizer will decide if these new permutations in the base group warrents an extension of its generating set. This decision must be in accordance with the
is_accurate
type.g.add_generators(first, lastOld, lastNew, callback)
: as the otherg.add_generators
function, but with a notification callback. If new permutations are added to this stabilizer, the callback will be called at least once with three pointer iteratorsstabFirst
,stabLastOld
, andstabLastNew
. These iterators have the same semantics as the given iterators, but for the stabilizer it self.
-
using