Public Types | Public Member Functions | Private Member Functions

Series< Semiring, Monoid > Struct Template Reference

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

Inheritance diagram for Series< Semiring, Monoid >:
Inheritance graph
[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_tmonoid () const
 Accessor to the monoid (const version).
monoid_tmonoid ()
 Accessor to the monoid.
const semiring_tsemiring () const
 Accessor to the semiring (const version).
semiring_tsemiring ()
 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_tself ()
 Accessor to the real type.
const self_tself () 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.