Vcsn  2.3
Be Rational
vcsn::automatonset< Context, Tag > Class Template Reference

#include <automatonset.hh>

Inheritance diagram for vcsn::automatonset< Context, Tag >:
Collaboration diagram for vcsn::automatonset< Context, Tag >:

Public Types

using context_t = Context
 
using tag_t = Tag
 
using value_t = mutable_automaton< context_t >
 
using labelset_t = labelset_t_of< context_t >
 
using weightset_t = weightset_t_of< context_t >
 
using kind_t = typename context_t::kind_t
 
using state_t = unsigned
 Lightweight state handle (or index). More...
 
using transition_t = unsigned
 Lightweight transition handle (or index). More...
 
using label_t = typename labelset_t::value_t
 Transition label. More...
 
using weight_t = typename weightset_t::value_t
 Transition weight. More...
 

Public Member Functions

 automatonset (const context_t &c)
 
auto print_set (std::ostream &o, format fmt={}) const -> std::ostream &
 Format the description of this automatonset. More...
 
auto zero () const -> value_t
 
auto one () const -> value_t
 
auto atom (const label_t &l) const -> value_t
 
template<typename Ctx = context_t>
auto compose (const value_t &l, const value_t &r) const -> std::enable_if_t< are_composable< Ctx, Ctx >
 Build a composition: l @ r. More...
 
auto conjunction (const value_t &l, const value_t &r) const -> value_t
 Build an conjunction product: l & r. More...
 
auto infiltrate (const value_t &l, const value_t &r) const -> value_t
 Build an infiltration product: l &: r. More...
 
auto shuffle (const value_t &l, const value_t &r) const -> value_t
 Build a shuffle product: l : r. More...
 
template<typename... Value>
auto tuple (Value &&...v) const -> value_t
 Build a tuple: e | f | .... More...
 
auto power (const value_t &e, unsigned n) const -> value_t
 Add a power operator: e{n}. More...
 
auto ldivide (const value_t &l, const value_t &r) const -> value_t
 r`. More...
 
auto rdivide (const value_t &l, const value_t &r) const -> value_t
 Build a right division: l {/} r. More...
 
auto star (const value_t &e) const -> value_t
 Add a star operator: e*. More...
 
auto complement (const value_t &e, std::true_type) const -> value_t
 Add a complement operator: e{c}. More...
 
auto complement (const value_t &, std::false_type) const -> value_t
 Add a complement operator: e{c}. More...
 
auto complement (const value_t &e) const -> value_t
 Add a complement operator: e{c}. More...
 
auto transposition (const value_t &e) const -> value_t
 Add a transposition operator. More...
 
auto rweight (const value_t &e, const weight_t &w) const -> value_t
 Right-multiplication by a weight. More...
 
auto lweight (const weight_t &w, const value_t &e) const -> value_t
 Left-multiplication by a weight. More...
 

Static Public Member Functions

static symbol sname ()
 
static auto add (const value_t &l, const value_t &r) -> value_t
 
static auto mul (const value_t &l, const value_t &r) -> value_t
 

Public Attributes

 value_t
 

Protected Attributes

context_t ctx_
 

Detailed Description

template<typename Context, typename Tag>
class vcsn::automatonset< Context, Tag >

Definition at line 19 of file automatonset.hh.

Member Typedef Documentation

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::context_t = Context

Definition at line 22 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::kind_t = typename context_t::kind_t

Definition at line 27 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::label_t = typename labelset_t::value_t

Transition label.

Definition at line 34 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::labelset_t = labelset_t_of<context_t>

Definition at line 25 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::state_t = unsigned

Lightweight state handle (or index).

Definition at line 30 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::tag_t = Tag

Definition at line 23 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::transition_t = unsigned

Lightweight transition handle (or index).

Definition at line 32 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::value_t = mutable_automaton<context_t>

Definition at line 24 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::weight_t = typename weightset_t::value_t

Transition weight.

Definition at line 36 of file automatonset.hh.

template<typename Context, typename Tag>
using vcsn::automatonset< Context, Tag >::weightset_t = weightset_t_of<context_t>

Definition at line 26 of file automatonset.hh.

Constructor & Destructor Documentation

template<typename Context, typename Tag>
vcsn::automatonset< Context, Tag >::automatonset ( const context_t c)
inline

Definition at line 45 of file automatonset.hh.

Member Function Documentation

template<typename Context, typename Tag>
static auto vcsn::automatonset< Context, Tag >::add ( const value_t l,
const value_t r 
) -> value_t
inlinestatic
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::atom ( const label_t l) const -> value_t
inline
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::complement ( const value_t e,
std::true_type   
) const -> value_t
inline
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::complement ( const value_t ,
std::false_type   
) const -> value_t
inline

Add a complement operator: e{c}.

Definition at line 217 of file automatonset.hh.

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::complement ( const value_t e) const -> value_t
inline

Add a complement operator: e{c}.

Definition at line 223 of file automatonset.hh.

template<typename Context, typename Tag>
template<typename Ctx = context_t>
auto vcsn::automatonset< Context, Tag >::compose ( const value_t l,
const value_t r 
) const -> std::enable_if_t<are_composable<Ctx, Ctx>
inline

Build a composition: l @ r.

Definition at line 118 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::conjunction ( const value_t l,
const value_t r 
) const -> value_t
inline

Build an conjunction product: l & r.

Definition at line 125 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::infiltrate ( const value_t l,
const value_t r 
) const -> value_t
inline

Build an infiltration product: l &: r.

Definition at line 134 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::ldivide ( const value_t l,
const value_t r 
) const -> value_t
inline
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::lweight ( const weight_t w,
const value_t e 
) const -> value_t
inline

Left-multiplication by a weight.

Definition at line 241 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
static auto vcsn::automatonset< Context, Tag >::mul ( const value_t l,
const value_t r 
) -> value_t
inlinestatic
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::one ( ) const -> value_t
inline
template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::power ( const value_t e,
unsigned  n 
) const -> value_t
inline

Add a power operator: e{n}.

Definition at line 153 of file automatonset.hh.

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::print_set ( std::ostream &  o,
format  fmt = {} 
) const -> std::ostream&
inline

Format the description of this automatonset.

Definition at line 50 of file automatonset.hh.

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::rdivide ( const value_t l,
const value_t r 
) const -> value_t
inline

Build a right division: l {/} r.

Definition at line 175 of file automatonset.hh.

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::rweight ( const value_t e,
const weight_t w 
) const -> value_t
inline

Right-multiplication by a weight.

Definition at line 235 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::shuffle ( const value_t l,
const value_t r 
) const -> value_t
inline

Build a shuffle product: l : r.

Definition at line 140 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
static symbol vcsn::automatonset< Context, Tag >::sname ( )
inlinestatic

Definition at line 38 of file automatonset.hh.

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::star ( const value_t e) const -> value_t
inline

Add a star operator: e*.

Definition at line 191 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
auto vcsn::automatonset< Context, Tag >::transposition ( const value_t e) const -> value_t
inline

Add a transposition operator.

Definition at line 229 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().

template<typename Context, typename Tag>
template<typename... Value>
auto vcsn::automatonset< Context, Tag >::tuple ( Value &&...  v) const -> value_t
inline

Build a tuple: e | f | ....

Definition at line 147 of file automatonset.hh.

Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::visit_tuple< bool, Dummy >::tape_().

Member Data Documentation

template<typename Context, typename Tag>
vcsn::automatonset< Context, Tag >::value_t
Initial value:

Definition at line 120 of file automatonset.hh.


The documentation for this class was generated from the following file: