|
libsemigroups
|
This class its subclasses provide very basic functionality for creating semirings. More...
#include <semiring.h>

Public Member Functions | |
| virtual | ~Semiring () |
| A default destructor. More... | |
| virtual T | one () const =0 |
| Returns the multiplicative identity, or one, of the semiring. More... | |
| virtual T | plus (T x, T y) const =0 |
Returns the sum of x and y. More... | |
| virtual T | prod (T x, T y) const =0 |
Returns the product of x and y. More... | |
| virtual T | zero () const =0 |
| Returns the additive identity, or zero, of the semiring. More... | |
Static Public Attributes | |
| static const T | INFTY = std::numeric_limits<T>::max() |
| Value representing \(\infty\). More... | |
| static const T | MINUS_INFTY = std::numeric_limits<T>::min() |
| Value representing \(-\infty\). More... | |
| static const T | UNDEFINED = std::numeric_limits<T>::max() |
| Value representing an undefined quantity. More... | |
This class its subclasses provide very basic functionality for creating semirings.
A semiring is a set \(R\) together with two binary operations \(+\) and \(\times\) (called addition and multiplication) such that \((R, +)\) is a commutative monoid with identity \(0\), \((R, \times)\) is a monoid with identity \(1\), and the following hold:
More information about semirings can be found on Wikipedia.
|
inlinevirtual |
A default destructor.
|
pure virtual |
Returns the multiplicative identity, or one, of the semiring.
Implemented in libsemigroups::NaturalSemiring, libsemigroups::TropicalMinPlusSemiring, libsemigroups::TropicalMaxPlusSemiring, libsemigroups::MinPlusSemiring, libsemigroups::MaxPlusSemiring, libsemigroups::Integers, and libsemigroups::BooleanSemiring.
|
pure virtual |
Returns the sum of x and y.
Implemented in libsemigroups::NaturalSemiring, libsemigroups::TropicalMinPlusSemiring, libsemigroups::TropicalMaxPlusSemiring, libsemigroups::MinPlusSemiring, libsemigroups::MaxPlusSemiring, libsemigroups::Integers, and libsemigroups::BooleanSemiring.
|
pure virtual |
Returns the product of x and y.
Implemented in libsemigroups::NaturalSemiring, libsemigroups::TropicalMinPlusSemiring, libsemigroups::TropicalMaxPlusSemiring, libsemigroups::MinPlusSemiring, libsemigroups::MaxPlusSemiring, libsemigroups::Integers, and libsemigroups::BooleanSemiring.
|
pure virtual |
Returns the additive identity, or zero, of the semiring.
Implemented in libsemigroups::NaturalSemiring, libsemigroups::TropicalMinPlusSemiring, libsemigroups::TropicalMaxPlusSemiring, libsemigroups::MinPlusSemiring, libsemigroups::MaxPlusSemiring, libsemigroups::Integers, and libsemigroups::BooleanSemiring.
|
static |
Value representing \(\infty\).
|
static |
Value representing \(-\infty\).
|
static |
Value representing an undefined quantity.
1.8.13