Vaucanson 1.4
Classes | Functions
vcsn::algebra Namespace Reference

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  CyclicSemiring
 Structural element that denotes tropical semiring. 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  word_traits
 Trait for virtual types of structural elements for words. 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...
struct  word_traits< FreeMonoid< A >, std::basic_string< typename A::letter_t > >
 Meta information about the mixing of FreeMonoid with std::basic_string. More...
class  TRationalNumber
 Rational numbers class. 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...
interface  semiring_virtual
 Virtual pure class used by bison to deal with vaucanson's templated structures. More...
interface  krat_exp_virtual
 Virtual pure class used by bison to deal with vaucanson's templated structures. More...
struct  krat_exp_proxy
 Proxy over Vaucanson Element. More...
struct  semiring_proxy
 Proxy over Vaucanson Semiring. More...
struct  DispatchFunction< rat::exp< M, W > >
 Classical dispatch function for rat::exp. More...
struct  Series
 This is the final class for series. More...

Functions

template<typename S , typename L >
op_parse (const AlphabetSetBase< S > &s, const std::string &, size_t &)
 Implementation of a parser to return a letter.
template<typename S , typename St , typename T >
St & op_rout (const 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 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 S , typename St , typename T >
St & op_rout (const algebra::SeriesBase< S > &s, St &st, const T &se)
 Implementation of generic stream output operator for series.
boost::tuple< unsigned int,
int, int > 
ext_gcd (unsigned int a, unsigned int b)
 This algorithm computes the extended gcd of a and b.
template<typename W , typename M , typename Tm , typename Tw >
bool op_contains (const algebra::Series< W, M > &, const rat::exp< Tm, Tw > &)
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:

Function Documentation

boost::tuple<unsigned int, int, int> vcsn::algebra::ext_gcd ( unsigned int  a,
unsigned int  b 
) [inline]

This algorithm computes the extended gcd of a and b.

It solves the equality ax + by = d with d = gcd (a, b). If d = 1, then a and b are coprimes and x is the multiplicative inverse of a modulo b, and y is the multiplicative inverse of b modulo a.

Returns:
Returns a boost tuple corresponding to the tuple (d, x, y).

Definition at line 41 of file implementation/semiring/cyclic_semiring.hxx.

References std::swap().

bool op_contains ( const algebra::Series< W, M > &  ,
const rat::exp< Tm, Tw > &   
)
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, ...)
 

Definition at line 60 of file krat.hxx.