OnSets

template<typename TElementType, typename TPointType, typename TContainerType = std::vector<TPointType>>
struct libsemigroups::OnSets

Defined in adapters.hpp.

This is struct applies OnTuples<TElementType, TPointType, TContainerType> to a container of TContainerType and then sorts it.

tparam TElementType

the type of elements

tparam TPointType

the type of the points acted on

tparam TContainerType

a container of TPointType (defaults to std::vector with template parameter TPointType).

Public Functions

inline void operator()(TContainerType &res, TContainerType const &pt, TElementType const &p) const

This call operator changes res in-place to contain the image of the container pt of points of type TPointType, under the induced (left or right) action of the element x.

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.

Complexity

pt.size() times the complexity of ImageRightAction<TElementType, TPointType> and the cost plus the complexity of sorting res.

See

OnTuples and ImageRightAction.

Parameters
  • res – a container of TPointType (such as std::vector or std::array) to hold the result

  • pt – a container of TPointType

  • p – an element of type TElementType

Returns

(None)