template<typename Element, typename Point, typename Container = std::vector<Point>>
struct libsemigroups::OnSets< Element, Point, Container >
Defined in adapters.hpp
.
This struct applies OnTuples<Element, Point, Container>
to a container of Container
and then sorts it.
- Template Parameters
-
Element | the type of elements. |
Point | the type of the points acted on. |
Container | a container of Point (defaults to std::vector with template parameter Point ). |
template<typename Element, typename Point, typename Container = std::vector<Point>>
void operator() |
( |
Container & | res, |
|
|
Container const & | pt, |
|
|
Element const & | p ) const |
|
inline |
This call operator changes res
in-place to contain the image of the container pt
of points of type Point
, under the induced right action of the element p
. The purpose of the 1st parameter is to avoid repeated allocations of memory to hold temporary points that are discarded soon after they are created.
Once the right action has been calculated, the container is sorted using std::sort.
- Parameters
-
res | a container of Point (such as std::vector or std::array) to hold the result. |
pt | a container of Point . |
p | an element of type Element . |
- Complexity
pt.size()
times the complexity of ImageRightAction<Element, Point>
and the cost plus the complexity of sorting res
.
- See also
- OnTuples and ImageRightAction.