Vaucanson
1.4.1
|
Base class for all structures that are semirings. More...
Public Types | |
typedef Self | self_t |
Exact type of the most derived type in the hierarchy. |
Public Member Functions | |
template<class T > | |
bool | can_choose_non_starable (SELECTOR(T)) const |
Whether it is possible to call choose_non_starable. | |
template<class T > | |
Element< Self, T > | choose_starable (SELECTOR(T)) const |
A randomly chosen starable semiring element. | |
template<class T > | |
Element< Self, T > | choose_non_starable (SELECTOR(T)) const |
A randomly chosen non-starable semiring element. | |
template<typename T > | |
Element< Self, T > | identity (SELECTOR(T)) const |
Returns the identity of the monoid (if mul_kind). | |
template<typename T > | |
Element< Self, T > | zero (SELECTOR(T)) const |
Returns the zero of the monoid (if add_kind). | |
bool | contains (const Element< Self, T > &elt) const |
Check if a given element is compatible with the structural element. | |
bool | contains (const Element< OtherS, T > &other) const |
Specialization of contains that always returns false. | |
bool | contains (const T &elt_value) const |
Check if an anonymous value is compatible with a structural element. | |
Element< Self, T > | choose (SELECTOR(T)) const |
Choose randomly an element in the structure. | |
self_t & | self () |
Accessor to the real type. | |
const self_t & | self () const |
Accessor to the real type. |
Protected Member Functions | |
SemiringBase () | |
Default constructor is protected since it is an abstract class. | |
SemiringBase (const SemiringBase &other) | |
Copy constructor is protected since it is an abstract class. |
Base class for all structures that are semirings.
Definition at line 38 of file semiring_base.hh.
bool can_choose_non_starable | ( | SELECTOR(T) | ) | const |
Whether it is possible to call choose_non_starable.
There's no need for can_choose_starable, since Zero is always starable and therefore can be chosen.
Definition at line 47 of file semiring_base.hxx.
References vcsn::algebra::op_can_choose_non_starable(), and SELECT.
|
inherited |
Specialization of contains
that always returns false.
Indeed, elements structured by a particular type are always incompatible with structural elements of another type.
|
inherited |
Accessor to the real type.
To be used by implementations in this class and derived structures to obtain a reference to the structural element with its most derived type.
|
inherited |
Accessor to the real type.
To be used by implementations in this class and derived structures to obtain a reference to the structural element with its most derived type.