Adapter for the product of two elements.
Defined in adapters.hpp.
Specialisations of this struct should be stateless trivially default constructible with a call operator of signature void operator()(Element&, Element const&, Element const&, size_t = 0) (possibly noexcept, inline and/or constexpr also).
The call operator should change xy in-place to be the product of x and y. The 4th parameter is optional and it can be used as an index for static thread local storage, that might be required for forming the product of x and y. The purpose of the 1st parameter is to avoid repeated allocations of memory to hold temporary products that are discarded soon after they are created.
| Element | the type of the elements of a semigroup. |
The second template parameter exists for SFINAE.
Public Member Functions | |
| void | operator() (BMat8 &xy, BMat8 const &x, BMat8 const &y, size_t=0) const noexcept |
Changes xy in place to hold the product of x and y. | |