![]()  | 
  
    Vcsn
    2.8
    
   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 | 
Public Member Functions | |
| star_normal_form_visitor (const expressionset_t &rs) | |
| expression_t | operator() (const expression_t &v) | 
Static Public Member Functions | |
| static constexpr const char * | me () | 
| Name of this algorithm, for error messages.  More... | |
Private Types | |
| using | tuple_t = typename super_t::tuple_t | 
Private Member Functions | |
| expression_t | rec_ (const expression_t &v) | 
| Easy recursion.  More... | |
| VCSN_RAT_VISIT (zero,) | |
| VCSN_RAT_VISIT (one,) | |
| VCSN_RAT_VISIT (atom, v) | |
| VCSN_RAT_VISIT (name, v) | |
| VCSN_RAT_VISIT (add, v) | |
| void | visit (const tuple_t &, std::true_type) override | 
| VCSN_RAT_VISIT (mul, v) | |
| void | box_of (const mul_t &v) | 
| Handling of a product by the box operator.  More... | |
| void | dot_of (const mul_t &v) | 
| Handling of a product by the dot operator.  More... | |
| VCSN_RAT_VISIT (star, v) | |
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.
      
  | 
  private | 
Definition at line 106 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.
      
  | 
  inlineprivate | 
Handling of a product by the box operator.
Definition at line 121 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 >::rec_(), vcsn::res, 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().
      
  | 
  inlineprivate | 
Handling of a product by the dot operator.
Definition at line 146 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::rec_(), vcsn::res, 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 >::rec_().
      
  | 
  inlineprivate | 
Easy recursion.
Definition at line 61 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_.
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().
      
  | 
  inlineprivate | 
Definition at line 67 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::res_, and vcsn::rat::star_normal_form_visitor< ExpSet >::rs_.
      
  | 
  inlineprivate | 
Definition at line 72 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::operation_, vcsn::rat::star_normal_form_visitor< ExpSet >::res_, and vcsn::rat::star_normal_form_visitor< ExpSet >::rs_.
      
  | 
  inlineprivate | 
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::v.
      
  | 
  inlineprivate | 
Definition at line 82 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::rec_(), vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, and vcsn::v.
      
  | 
  inlineprivate | 
Definition at line 88 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::rec_(), vcsn::res, vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, vcsn::v, and VCSN_RAT_UNSUPPORTED.
      
  | 
  inlineprivate | 
Definition at line 112 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::v.
      
  | 
  inlineprivate | 
Definition at line 154 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 >::rec_(), vcsn::rat::star_normal_form_visitor< ExpSet >::res_, vcsn::rat::star_normal_form_visitor< ExpSet >::rs_, vcsn::v, and vcsn::rat::star_normal_form_visitor< ExpSet >::ws_.
      
  | 
  inlineoverrideprivate | 
Definition at line 107 of file star-normal-form.hh.
References vcsn::rat::star_normal_form_visitor< ExpSet >::me().
      
  | 
  private | 
The current operation.
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 >::operator()(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
      
  | 
  private | 
The result.
Definition at line 172 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 >::rec_(), and vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT().
      
  | 
  private | 
Definition at line 168 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 170 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().