# Series< Semiring, Monoid > Struct Template Reference

This is the final class for series. More...

Inheritance diagram for Series< Semiring, Monoid >:
[legend]

List of all members.

## Public Types

typedef virtual_types< Series < Semiring, Monoid > >::monoid_t | monoid_t
| The type of the free monoid A*.
typedef virtual_types< Series < Semiring, Monoid > >::semiring_t | semiring_t
| The type of the semiring K.
typedef Series< Semiring, Monoid > | self_t
| Exact type of the most derived type in the hierarchy.

## Public Member Functions

const monoid_t & | monoid () const
| Accessor to the monoid (const version).
monoid_t & | monoid ()
| Accessor to the monoid.
const semiring_t & | semiring () const
| Accessor to the semiring (const version).
semiring_t & | semiring ()
| Accessor to the semiring.
bool | can_choose_non_starable (SELECTOR(T)) const
| Whether it is possible to call choose_non_starable.
Element< Series< Semiring, Monoid >, T > | choose_starable (SELECTOR(T)) const
| A randomly chosen starable semiring element.
Element< Series< Semiring, Monoid >, T > | choose_non_starable (SELECTOR(T)) const
| A randomly chosen non-starable semiring element.
Element< Series< Semiring, Monoid >, T > | identity (SELECTOR(T)) const
| Returns the identity of the monoid (if mul_kind).
Element< Series< Semiring, Monoid >, T > | zero (SELECTOR(T)) const
| Returns the zero of the monoid (if add_kind).
bool | contains (const Element< Series< Semiring, Monoid >, 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< Series< Semiring, Monoid >, 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.

## Private Member Functions

const Semiring & | _structure_get () const
| Access to the instance of the structural element.
bool | _structure_bound () const
| Whether the current set slot is linked to a structural element.
const Monoid & | _structure_get () const
| Access to the instance of the structural element.
bool | _structure_bound () const
| Whether the current set slot is linked to a structural element.
Methods to link the Slot
Because this version of the class pertains to static S.E. 's, those methods actually do nothing and calls to it should be optimized away.
void | _structure_assign (const SetSlotAttribute &other)
| Link a `SetSlot` to another.
void | _structure_attach (const Semiring &other)
| Link a `SetSlot` to a structural element.
void | _structure_assign (const SetSlotAttribute &other)
| Link a `SetSlot` to another.
void | _structure_attach (const Monoid &other)
| Link a `SetSlot` to a structural element.

## Detailed Description

### template<typename Semiring, typename Monoid>
struct vcsn::algebra::Series< Semiring, Monoid >

This is the final class for series.

FIXME: Rename to SeriesSet (see Trac #3).

Definition at line 39 of file series.hh.

## Member Function Documentation

bool can_choose_non_starable | ( | SELECTOR(T) |  | ) | const`[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.

bool contains | ( | const Element< OtherS, T > & | other | ) | const`[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.