libsemigroups  v3.0.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
template<size_t T, size_t P, typename Scalar>
struct libsemigroups::NTPPlus< T, P, Scalar >

Defined in matrix.hpp.

This is a stateless struct with a single call operator of signature: Scalar operator()(Scalar x, Scalar y) const noexcept that returns \(x \oplus y\) which is defined by

\[ x\oplus y = \begin{cases} x + y & \text{if } x + y \leq T \\ \mbox{} T + ((x + y) - T \pmod{P}) & \text{if } x + y > T \end{cases} \]

representing addition in the quotient of the semiring natural numbers by the congruence \((T = T + P)\).

Template Parameters
Tthe threshold.
Pthe period.
Scalarthe type of the values in the semiring.

Public Member Functions

constexpr Scalar operator() (Scalar x, Scalar y) const noexcept
 Call operator for addition.
 

Member Function Documentation

◆ operator()()

template<size_t T, size_t P, typename Scalar>
Scalar operator() ( Scalar x,
Scalar y ) const
inlineconstexprnoexcept

This function returns the sum of its arguments in an ntp semiring.

Parameters
xthe first value.
ythe second value.
Returns
The sum of x and y in an ntp semiring.
Exceptions
This function is noexcept and is guaranteed never to throw.

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