libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
Product< BMat8 >

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.

Template Parameters
Elementthe type of the elements of a semigroup.

The second template parameter exists for SFINAE.

Used by:
Example
template <>
struct Product<size_t> {
void operator()(size_t& xy, size_t x, size_t y, size_t = 0) const
noexcept {
xy = x * y;
}
};
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.
Definition bmat8.hpp:1061
Adapter for the product of two elements.
Definition adapters.hpp:284

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.
 

The documentation for this struct was generated from the following file: