libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
IncreaseDegree< BMat8 >

Adapter for increasing the degree of an element.

Defined in adapters.hpp.

Specialisations of this struct should be stateless trivially default constructible with a call operator of signature void operator()(Element& x, size_t n) const (possibly noexcept, inline and/or constexpr also).

The call operator should change the first argument in-place so that if m = Degree<Element>()(x), then after the call to IncreaseDegree<Element>()(x, n), Degree<Element>()(x) returns m + n. This only makes sense for certain types of elements, such as permutations, transformations, or matrices, and not for other types of object. In the latter case, the call operator should simply do nothing. This is used, for example, in the member function FroidurePin::closure, when one of the generators being added has degree larger than the existing generators.

Template Parameters
Elementthe type of the elements of a semigroup.

The second template parameter exists for SFINAE.

Used by:
Example
template <typename Integral>
Integral,
typename std::enable_if<std::is_integral<Integral>::value>::type>
{
void operator()(Integral&, size_t) const noexcept {
}
};
void operator()(BMat8 const &, size_t) const noexcept
Does nothing.
Definition bmat8.hpp:1033
Adapter for increasing the degree of an element.
Definition adapters.hpp:199

Public Member Functions

void operator() (BMat8 const &, size_t) const noexcept
 Does nothing.
 

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