- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Namespace List
- Namespace Members

# vcsn::algebra Namespace Reference
[Algebra, Alphabet]

Namespace for algebra constructs in Vaucanson. More...

## Classes
struct | AlphabetSetBase
| Base class for structural elements of alphabets. More...
struct | alphabet_traits
| Trait for virtual types of structural elements for alphabets. More...
struct | FreeMonoidBase
| Structural element for free monoid. More...
struct | FreeMonoidProduct
| Implementation of a monoid which is a product of two free monoids. More...
struct | FreeMonoidProductBase
| Structural element for free monoid product. More...
struct | MonoidBase
| `The` base class of all structures that are monoids. More...
struct | NumericalSemiring
| The set of semirings implemented with usual operations (+, *). More...
struct | mul_kind
| Empty class used as static information to denote the kind of internal operation of a semigroup. More...
struct | add_kind
| Empty class used as static information to denote the kind of internal operation of a semigroup. More...
struct | SemigroupBase
| Base class of all structures that are semigroups. More...
struct | SemiringBase
| Base class for all structures that are semirings. More...
struct | SeriesBase
| Structural element of series K<A*> from a free monoid A* to a semiring K. More...
struct | series_traits
| Meta information about series. More...
struct | TropicalMin
| Static information about the kind of tropical we are confronted with. More...
struct | TropicalMax
| Static information about the kind of tropical we are confronted with. More...
struct | TropicalSemiring
| Structural element that denotes tropical semiring. More...
struct | alphabet_traits< AlphabetSet< L >, std::set< L > >
| Meta information about the mixing of AlphabetSet with std::set. More...
struct | AlphabetSet
| Static implementation of alphabet structural element. More...
class | AlphabetDecorator
| Decorate a given alphabet implementation with meta-symbols. More...
struct | alphabet_traits< AlphabetSet< L >, AlphabetDecorator< L, T > >
| Meta information about the mixing of AlphabetSet with AlphabetDecorator. More...
struct | FreeMonoid
| Implementation of a free monoid which aggregates its alphabet. More...
class | RationalNumber
| Rational numbers class. More...
class | KRatExpToken
| Schrödinger's token for rational expression lexing. More...
struct | Lexer
| Lexer class for the rational expression parser. More...
struct | Parser
| Parser class used in the parse() function. More...
struct | BinaryOp
| BinaryOp is a generic class which symbolised binary operator. More...
struct | UnaryOp
| UnaryOp is a generic class which symbolised binary operator. More...
struct | Value
| Value is a generic class which symbolised leaf of AST. More...
struct | GenericMatcher
| GenericMatcher manages the dispatch of pattern matching. More...
struct | DispatchFunction< rat::exp< M, W > >
| Classical dispatch function for rat::exp. More...
struct | Series
| This is the final class for series. More...
## Namespaces
namespace | krat_exp_lexing
| Misc. declarations used for rational expression lexing.

## Functions
template<typename S, typename St, typename T>
St & | op_rout (const algebra::AlphabetSetBase< S > &s, St &st, const T &a)
| Implementation of generic stream output operator for alphabets.
template<typename S, typename T, typename L>
bool | op_letter_equality (const algebra::AlphabetSetBase< S > &s, const T &a, L lhs, L rhs)
| Implementation of generic letter equality modulo meta-characters.
template<typename S, typename T>
bool | op_can_choose_non_starable (const algebra::SemiringBase< S > &set, SELECTOR(T))
| Whether a non-starable `Element` can be chosen from a Semiring.
template<typename S, typename T>
Element< S, T > | op_choose_starable (const algebra::SemiringBase< S > &set, SELECTOR(T))
| A random starable element in the set.
template<typename S, typename T>
Element< S, T > | op_choose_non_starable (const algebra::SemiringBase< S > &set, SELECTOR(T))
| A random non-starable element in the set.
template<typename W, typename M, typename Tm, typename Tw>
void | op_in_mul (const algebra::Series< W, M > &s, rat::exp< Tm, Tw > &dst, const rat::exp< Tm, Tw > &arg)
template<typename W, typename M, typename Tm, typename Tw, typename oTw>
void | op_in_mul (const algebra::Series< W, M > &s, const W &semiring, rat::exp< Tm, Tw > &ret, const oTw &w)
template<typename W, typename M, typename oTw, typename Tm, typename Tw>
rat::exp< Tm, Tw > | op_mul (const W &semiring, const algebra::Series< W, M > &s, const oTw &w, const rat::exp< Tm, Tw > &b)
template<class S, class T>
std::pair< bool, std::string > | parse (const std::string &from, Element< S, T > &exp, bool lex_trace=false, bool parse_trace=false)
| Parse a rational expression.

## Detailed Description

Namespace for algebra constructs in Vaucanson.

The algebra namespace in Vaucanson contains all the compounds which are needed to manipulate algebraic structures. Both structural elements (e.g. Alphabets, Monoids, etc.) and implementations of those elements (polynoms, rational expressions, etc.) are presents in this namespace.

See also:
  - Algebra
  - `AlphabetSet`
  - `MonoidBase`
  - `FreeMonoid`
  - `FreeMonoidProduct`
  - `SemigroupBase`
  - `NumericalSemiring`
  - `TropicalSemiring`
  - `Series`

Bug:
  FIXME Operators in krat.hxx are of the form:

        template<typename S, typename M ...>
          ... op(Series<S>& series, M& monoid, ...)

and should be instead:

        template<typename S, typename M ...>
          ... op(Series<S>& series, Monoid<M>& monoid, ...)

## Function Documentation

void op_in_mul | ( | const algebra::Series< W, M > & | s,
|  | rat::exp< Tm, Tw > & | dst,
|  | const rat::exp< Tm, Tw > & | arg |
| ) |  |  | `[inline]`

Bug:
  FIXME: Add the following transformation in a separated function.

Definition at line 161 of file krat.hxx.

References exp::base(), and Series::semiring().

void op_in_mul | ( | const algebra::Series< W, M > & | s,
|  | const W & | semiring,
|  | rat::exp< Tm, Tw > & | ret,
|  | const oTw & | w |
| ) |  |  | `[inline]`

Bug:
  FIXME: Add the following transformation in a separated function.

Definition at line 461 of file krat.hxx.

References exp::base(), SELECT, and Series::semiring().

rat::exp< Tm, Tw > op_mul | ( | const W & | semiring,
|  | const algebra::Series< W, M > & | s,
|  | const oTw & | w,
|  | const rat::exp< Tm, Tw > & | b |
| ) |  |  | `[inline]`

Bug:
  FIXME: Add the following transformation in a separated function.

Definition at line 552 of file krat.hxx.

References exp::base(), SELECT, and Series::semiring().