libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Actions

This page contains an overview of the functionality in libsemigroups for finding actions of semigroups, or groups, on sets. The notion of an "action" in the context of libsemigroups is analogous to the notion of an orbit of a group.

You are unlikely to want to use Action directly, but rather via the more convenient aliases RightAction and LeftAction. To use RightAction and LeftAction with custom types, actions, and so on, see ActionTraits.

See also ImageLeftAction and ImageRightAction.

using namespace libsemigroups;
o;
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0},
16));
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
16));
PPerm<16>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
16));
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
16));
o.reserve(70000);
o.size(); // returns 65536
size_t size()
Returns the size of the fully enumerated action.
Definition action.hpp:557
Action & add_generator(element_type const &gen)
Add a generator to the action.
Definition action.hpp:441
Action & reserve(size_t val)
Increase the capacity to a value that is greater or equal to val.
Action & add_seed(const_reference_point_type seed)
Add a seed to the action.
Partial permutations with static or dynamic degree.
Definition transf.hpp:1221
Action< Element, Point, Func, Traits, side::right > RightAction
Definition action.hpp:870
Namespace for everything in the libsemigroups library.
Definition action.hpp:44
Adapter for the value of a right action.
Definition adapters.hpp:392

Classes

class  Action< Element, Point, Func, Traits, LeftOrRight >
 Class for generating the action of a semigroup. More...
 
struct  ActionTraits< Element, Point >
 

Typedefs

template<typename Element, typename Point, typename Func, typename Traits = ActionTraits<Element, Point>>
using LeftAction = Action<Element, Point, Func, Traits, side::left>
 
template<typename Element, typename Point, typename Func, typename Traits = ActionTraits<Element, Point>>
using RightAction = Action<Element, Point, Func, Traits, side::right>
 

Enumerations

enum class  side { left , right }
 Enum class indicating the handedness or side of an action. More...
 

Typedef Documentation

◆ LeftAction

template<typename Element, typename Point, typename Func, typename Traits = ActionTraits<Element, Point>>
using LeftAction = Action<Element, Point, Func, Traits, side::left>

This class represents the left action of a semigroup on a set.

See also
Action for further details.

◆ RightAction

template<typename Element, typename Point, typename Func, typename Traits = ActionTraits<Element, Point>>
using RightAction = Action<Element, Point, Func, Traits, side::right>

This class represents the right action of a semigroup on a set.

See also
Action for further details.

Enumeration Type Documentation

◆ side

enum class side
strong

The values in this enum can be used as a template parameter for the Action class to specify whether the action of the Action is a left or right action.

Enumerator
left 

This value indicates that the action in an Action instance should be a left action.

right 

This value indicates that the action in an Action instance should be a right action.