Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

FreeMonoidProduct Struct Template Reference
[AlgebraFmp]

Implementation of a monoid which is a product of two free monoids. More...

Inheritance diagram for FreeMonoidProduct:

Inheritance graph
[legend]
List of all members.

Public Types

typedef F first_monoid_t
 The type of free monoid A*.
typedef S second_monoid_t
 The type of free monoid B*.
typedef undefined_type alphabet_t
typedef undefined_type letter_t
typedef FreeMonoidProduct<
F, S > 
self_t
 Exact type of the most derived type in the hierarchy.

Public Member Functions

 FreeMonoidProduct (const F &a, const S &b)
 Constructor based on two free monoids.
 FreeMonoidProduct (const FreeMonoidProduct &w)
 Copy constructor.
first_monoid_tfirst_monoid ()
 Monoid's accessor.
const first_monoid_tfirst_monoid () const
 First monoid's const accessor.
second_monoid_tsecond_monoid ()
 Second monoid's accessor.
const second_monoid_tsecond_monoid () const
 Second monoid's const accessor.
Element< FreeMonoidProduct<
F, S >, T > 
identity (SELECTOR(T)) const
 Returns the identity of the monoid (if mul_kind).
Element< FreeMonoidProduct<
F, S >, T > 
zero (SELECTOR(T)) const
 Returns the zero of the monoid (if add_kind).
bool contains (const Element< FreeMonoidProduct< F, S >, 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< FreeMonoidProduct<
F, S >, T > 
choose (SELECTOR(T)) const
 Choose randomly an element in the structure.
self_tself ()
 Accessor to the real type.

Protected Member Functions

 FreeMonoidProductBase ()
 Default constructor accessor.
 FreeMonoidProductBase (const FreeMonoidProductBase &m)
 Copy constructor accessor.
 MonoidBase ()
 Protected since it is an abstract class.
 MonoidBase (const MonoidBase &other)
 Protected since it is an abstract class.
 SemigroupBase ()
 Default constructor is protected since it is an abstract class.
 SemigroupBase (const SemigroupBase &other)
 Copy constructor is protected since it is an abstract class.

Protected Attributes

first_monoid_t first_monoid_
second_monoid_t second_monoid_

Detailed Description

template<class F, class S>
struct vcsn::algebra::FreeMonoidProduct< F, S >

Implementation of a monoid which is a product of two free monoids.

Definition at line 37 of file freemonoid_product.hh.


Member Function Documentation

FreeMonoidProduct< F, S >::first_monoid_t & first_monoid  ) 
 

Monoid's accessor.

Bug:
FIXME: this interface should not exist (s.e.
are const once instantiated)

Reimplemented from FreeMonoidProductBase< FreeMonoidProduct< F, S > >.

Definition at line 44 of file freemonoid_product.hxx.

References FreeMonoidProduct::first_monoid_.

Referenced by vcsn::op_choose(), and vcsn::algebra::operator==().

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.


Generated on Fri Oct 12 21:28:44 2007 for Vaucanson by  doxygen 1.4.4