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.