Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn::rat::star_normal_form_visitor< RatExpSet > Class Template Reference

#include <star-normal-form.hh>

Inheritance diagram for vcsn::rat::star_normal_form_visitor< RatExpSet >:
Collaboration diagram for vcsn::rat::star_normal_form_visitor< RatExpSet >:

Public Types

enum  operation_t { dot, box }
 The type of the operator. More...
 
using ratexpset_t = RatExpSet
 
using ratexp_t = typename ratexpset_t::value_t
 
using context_t = context_t_of< ratexpset_t >
 
using weightset_t = weightset_t_of< context_t >
 
using weight_t = typename weightset_t::value_t
 
using super_t = typename RatExpSet::const_visitor
 

Public Member Functions

 star_normal_form_visitor (const ratexpset_t &rs)
 
ratexp_t operator() (const ratexp_t &v)
 
 VCSN_RAT_VISIT (zero,)
 
 VCSN_RAT_VISIT (one,)
 
 VCSN_RAT_VISIT (atom, v)
 
 VCSN_RAT_VISIT (sum, v)
 
 VCSN_RAT_VISIT (prod, v)
 
void box_of (const prod_t &v)
 Handling of a product by the box operator. More...
 
void dot_of (const prod_t &v)
 Handling of a product by the dot operator. More...
 
 VCSN_RAT_VISIT (star, v)
 
 VCSN_RAT_VISIT (lweight, v)
 
 VCSN_RAT_VISIT (rweight, v)
 

Static Public Member Functions

static constexpr const charme ()
 

Private Attributes

ratexpset_t rs_
 
weightset_t ws_ = *rs_.weightset()
 Shorthand to the weightset. More...
 
ratexp_t res_
 The result. More...
 
operation_t operation_ = dot
 The current operation. More...
 

Detailed Description

template<typename RatExpSet>
class vcsn::rat::star_normal_form_visitor< RatExpSet >

Template Parameters
RatExpSetrelative to the RatExp.

Implementation based on the dot/box operators as defined in "On the Number of Broken Derived Terms of a Rational Expression", Pierre-Yves Angrand, Sylvain Lombardy, Jacques Sakarovitch.

Definition at line 27 of file star-normal-form.hh.

Member Typedef Documentation

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::context_t = context_t_of<ratexpset_t>

Definition at line 33 of file star-normal-form.hh.

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::ratexp_t = typename ratexpset_t::value_t

Definition at line 32 of file star-normal-form.hh.

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::ratexpset_t = RatExpSet

Definition at line 31 of file star-normal-form.hh.

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::super_t = typename RatExpSet::const_visitor

Definition at line 37 of file star-normal-form.hh.

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::weight_t = typename weightset_t::value_t

Definition at line 35 of file star-normal-form.hh.

template<typename RatExpSet >
using vcsn::rat::star_normal_form_visitor< RatExpSet >::weightset_t = weightset_t_of<context_t>

Definition at line 34 of file star-normal-form.hh.

Member Enumeration Documentation

template<typename RatExpSet >
enum vcsn::rat::star_normal_form_visitor::operation_t

The type of the operator.

Enumerator
dot 
box 

Definition at line 42 of file star-normal-form.hh.

Constructor & Destructor Documentation

template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::star_normal_form_visitor ( const ratexpset_t rs)
inline

Definition at line 44 of file star-normal-form.hh.

Member Function Documentation

template<typename RatExpSet >
void vcsn::rat::star_normal_form_visitor< RatExpSet >::dot_of ( const prod_t &  v)
inline
template<typename RatExpSet >
static constexpr const char* vcsn::rat::star_normal_form_visitor< RatExpSet >::me ( )
inlinestatic

Definition at line 39 of file star-normal-form.hh.

template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( zero  )
inline
template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( atom  ,
 
)
inline
template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( sum  ,
 
)
inline
template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( prod  ,
 
)
inline

Definition at line 90 of file star-normal-form.hh.

References vcsn::rat::star_normal_form_visitor< RatExpSet >::box, vcsn::rat::star_normal_form_visitor< RatExpSet >::box_of(), vcsn::rat::star_normal_form_visitor< RatExpSet >::dot_of(), and vcsn::rat::star_normal_form_visitor< RatExpSet >::operation_.

Here is the call graph for this function:

template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( star  ,
 
)
inline
template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( lweight  ,
 
)
inline
template<typename RatExpSet >
vcsn::rat::star_normal_form_visitor< RatExpSet >::VCSN_RAT_VISIT ( rweight  ,
 
)
inline

Member Data Documentation

template<typename RatExpSet >
weightset_t vcsn::rat::star_normal_form_visitor< RatExpSet >::ws_ = *rs_.weightset()
private

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