Vcsn
2.2
Be Rational
|
#include <star-normal-form.hh>
Public Types | |
enum | operation_t { dot, box } |
The type of the operator. More... | |
using | expressionset_t = ExpSet |
using | expression_t = typename expressionset_t::value_t |
using | context_t = context_t_of< expressionset_t > |
using | weightset_t = weightset_t_of< context_t > |
using | weight_t = typename weightset_t::value_t |
using | super_t = typename ExpSet::const_visitor |
using | tuple_t = typename super_t::tuple_t |
Public Member Functions | |
star_normal_form_visitor (const expressionset_t &rs) | |
expression_t | operator() (const expression_t &v) |
VCSN_RAT_VISIT (zero,) | |
VCSN_RAT_VISIT (one,) | |
VCSN_RAT_VISIT (atom, v) | |
VCSN_RAT_VISIT (sum, v) | |
virtual void | visit (const tuple_t &, std::true_type) override |
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) | |
Static Public Member Functions | |
static constexpr const char * | me () |
Name of this algorithm, for error messages. More... | |
Private Attributes | |
expressionset_t | rs_ |
weightset_t | ws_ = *rs_.weightset() |
Shorthand to the weightset. More... | |
expression_t | res_ |
The result. More... | |
operation_t | operation_ = dot |
The current operation. More... | |
ExpSet | relative to the expression. |
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 28 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::context_t = context_t_of<expressionset_t> |
Definition at line 34 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::expression_t = typename expressionset_t::value_t |
Definition at line 33 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::expressionset_t = ExpSet |
Definition at line 32 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::super_t = typename ExpSet::const_visitor |
Definition at line 41 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::tuple_t = typename super_t::tuple_t |
Definition at line 97 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::weight_t = typename weightset_t::value_t |
Definition at line 39 of file star-normal-form.hh.
using vcsn::rat::star_normal_form_visitor< ExpSet >::weightset_t = weightset_t_of<context_t> |
Definition at line 35 of file star-normal-form.hh.
enum vcsn::rat::star_normal_form_visitor::operation_t |
|
inline |
Definition at line 49 of file star-normal-form.hh.
|
inline |
Handling of a product by the box operator.
Definition at line 112 of file star-normal-form.hh.
References vcsn::detail::any_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::box, vcsn::constant_term(), vcsn::rat::star_normal_form_visitor< ExpSet >::dot, vcsn::rat::star_normal_form_visitor< ExpSet >::dot_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::operation_, vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, and vcsn::rat::star_normal_form_visitor< ExpSet >::ws_.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
|
inline |
Handling of a product by the dot operator.
Definition at line 141 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_, and vcsn::rat::star_normal_form_visitor< ExpSet >::rs_.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
|
inlinestatic |
Name of this algorithm, for error messages.
Definition at line 44 of file star-normal-form.hh.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::visit().
|
inline |
Definition at line 54 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::dot, vcsn::rat::star_normal_form_visitor< ExpSet >::operation_, and vcsn::rat::star_normal_form_visitor< ExpSet >::res_.
|
inline |
Definition at line 61 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_, and vcsn::rat::star_normal_form_visitor< ExpSet >::rs_.
|
inline |
|
inline |
Definition at line 71 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, and vcsn::detail::v.
|
inline |
Definition at line 77 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, and vcsn::detail::v.
|
inline |
Definition at line 103 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::box, vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::dot_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::operation_, and vcsn::detail::v.
|
inline |
Definition at line 153 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::box, vcsn::constant_term(), vcsn::rat::star_normal_form_visitor< ExpSet >::dot, vcsn::rat::star_normal_form_visitor< ExpSet >::operation_, vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, vcsn::detail::v, and vcsn::rat::star_normal_form_visitor< ExpSet >::ws_.
|
inlineoverridevirtual |
Definition at line 98 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::me().
|
private |
The current operation.
Definition at line 176 of file star-normal-form.hh.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::operator()(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
|
private |
The result.
Definition at line 174 of file star-normal-form.hh.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::dot_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::operator()(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
|
private |
Definition at line 170 of file star-normal-form.hh.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), vcsn::rat::star_normal_form_visitor< ExpSet >::dot_of(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
|
private |
Shorthand to the weightset.
Definition at line 172 of file star-normal-form.hh.
Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().