ImageRightAction

template<typename TElementType, typename TPointType, typename = void>
struct ImageRightAction

Adapter for the value of a right action.

Defined in adapters.hpp.

Specialisations of this struct should be stateless trivially default constructible with a call operator of signature:

  1. void operator()(TPointType& res, TElementType const& x, TPointType const& pt) const (possibly noexcept, inline and/or constexpr also); or

  2. TPointType operator()(TElementType const& x, TPointType const& pt) const (possibly noexcept, inline and/or constexpr also).

In form (1): the call operator should change res in-place to contain the image of the point pt under the 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.

In form (2): the call operator should return the image of the point pt under the right action of the element x.

The third template parameter exists for SFINAE.

Used by:

Example

template <>
struct ImageLeftAction<BMat8, BMat8> {
  void operator()(BMat8& res, BMat8 pt, BMat8 x) const noexcept {
    res = (x * pt).row_space_basis();
  }
};

Template Parameters
  • TElementType – the type of the elements of a semigroup.

  • TPointType – the type of the points acted on.