# NumericalSemiring Struct Reference [Algebra, Semiring]

The set of semirings implemented with usual operations (+, *). More...

Inheritance diagram for NumericalSemiring:

[legend]

List of all members.

## 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_tself ()
Accessor to the real type.
const self_tself () const
Accessor to the real type.

## Detailed Description

The set of semirings implemented with usual operations (+, *).

Definition at line 33 of file concept/numerical_semiring.hh.

## Member Function Documentation

 bool can_choose_non_starable ( SELECTOR(T) ) const` [inline, inherited]`

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 46 of file semiring_base.hxx.

References vcsn::algebra::op_can_choose_non_starable(), and SELECT.

 bool contains ( const Element< OtherS, T > & other ) const` [inline, inherited]`

Specialization of `contains` that always returns false.

Indeed, elements structured by a particular type are always incompatible with structural elements of another type.

 self_t& self ( ) ` [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.

 const self_t& self ( ) const` [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.

Generated on Thu Jan 22 17:37:13 2009 for Vaucanson by  1.5.6