Vcsn  2.8
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

◆ context_t

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

Definition at line 22 of file automatonset.hh.

◆ kind_t

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.

◆ label_t

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.

◆ labelset_t

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.

◆ state_t

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.

◆ tag_t

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

Definition at line 23 of file automatonset.hh.

◆ transition_t

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.

◆ value_t

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

Definition at line 24 of file automatonset.hh.

◆ weight_t

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.

◆ weightset_t

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

◆ automatonset()

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

◆ add()

template<typename Context, typename Tag>
static auto vcsn::automatonset< Context, Tag >::add ( const value_t l,
const value_t r 
) -> value_t
inlinestatic

◆ atom()

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

◆ complement() [1/3]

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

◆ complement() [2/3]

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.

◆ complement() [3/3]

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.

◆ compose()

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().

◆ conjunction()

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().

◆ infiltrate()

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().

◆ ldivide()

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

◆ lweight()

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().

◆ mul()

template<typename Context, typename Tag>
static auto vcsn::automatonset< Context, Tag >::mul ( const value_t l,
const value_t r 
) -> value_t
inlinestatic

◆ one()

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

◆ power()

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.

◆ print_set()

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.

◆ rdivide()

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.

◆ rweight()

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().

◆ shuffle()

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().

◆ sname()

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

Definition at line 38 of file automatonset.hh.

◆ star()

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().

◆ transposition()

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().

◆ tuple()

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_().

◆ zero()

Member Data Documentation

◆ ctx_

◆ value_t

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: