libsemigroups
Public Member Functions | Static Public Attributes | List of all members
libsemigroups::Semiring< T > Class Template Referenceabstract

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...
 

Detailed Description

template<typename T>
class libsemigroups::Semiring< T >

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.

Constructor & Destructor Documentation

◆ ~Semiring()

template<typename T>
virtual libsemigroups::Semiring< T >::~Semiring ( )
inlinevirtual

A default destructor.

Member Function Documentation

◆ one()

template<typename T>
virtual T libsemigroups::Semiring< T >::one ( ) const
pure virtual

◆ plus()

template<typename T>
virtual T libsemigroups::Semiring< T >::plus ( x,
y 
) const
pure virtual

◆ prod()

template<typename T>
virtual T libsemigroups::Semiring< T >::prod ( x,
y 
) const
pure virtual

◆ zero()

template<typename T>
virtual T libsemigroups::Semiring< T >::zero ( ) const
pure virtual

Member Data Documentation

◆ INFTY

template<typename T>
const T libsemigroups::Semiring< T >::INFTY = std::numeric_limits<T>::max()
static

Value representing \(\infty\).

◆ MINUS_INFTY

template<typename T>
const T libsemigroups::Semiring< T >::MINUS_INFTY = std::numeric_limits<T>::min()
static

Value representing \(-\infty\).

◆ UNDEFINED

template<typename T>
const T libsemigroups::Semiring< T >::UNDEFINED = std::numeric_limits<T>::max()
static

Value representing an undefined quantity.


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