![]()  | 
  
    Awali
    
   Another Weighted Automata library 
   | 
 
A typed ratexp set. More...
#include <ratexpset.hh>
Public Member Functions | |
| ratexpset_impl (const context_t &ctx, identities_t identities) | |
| Constructor.  More... | |
| value_t | add (value_t l, value_t r) const | 
| value_t | complement (value_t e) const | 
| Add a complement operator.  More... | |
| value_t | concat (value_t l, value_t r) const | 
| value_t | conjunction (value_t l, value_t r) const | 
| const context_t & | context () const | 
| value_t | conv (b, typename b::value_t v) const | 
| template<typename GenSet > | |
| value_t | conv (const letterset< GenSet > &ls, typename letterset< GenSet >::value_t v) const | 
| template<typename GenSet > | |
| auto | conv (const letterset< GenSet > &ls, typename letterset< GenSet >::value_t v) const -> value_t | 
| value_t | conv (const q &ws, typename q::value_t v) const | 
| value_t | conv (const r &ws, typename r::value_t v) const | 
| template<typename Ctx2 > | |
| auto | conv (const ratexpset_impl< Ctx2 > &rs, typename ratexpset_impl< Ctx2 >::value_t v) const -> value_t | 
| template<typename Ctx2 > | |
| value_t | conv (const ratexpset_impl< Ctx2 > &ws, typename ratexpset_impl< Ctx2 >::value_t v) const | 
| value_t | conv (const z &ws, typename z::value_t v) const | 
| value_t | conv (self_type, value_t v) const | 
| value_t | conv (std::istream &is) const | 
| std::set< value_t > | convs (std::istream &) const | 
| template<exp::type_t Type> | |
| auto | gather (ratexps_t &res, value_t v) const -> void | 
| template<exp::type_t Type> | |
| auto | gather (value_t l, value_t r) const -> ratexps_t | 
| identities_t | identities () const | 
| bool | is_letter (value_t) const | 
| bool | is_series () const | 
| bool | is_zero (value_t v) const ATTRIBUTE_PURE | 
| const labelset_ptr & | labelset () const | 
| value_t | ldiv (value_t l, value_t r) const | 
| template<typename... Args> | |
| auto | letter_class (Args &&... args) const -> value_t | 
| template<typename... Args> | |
| value_t | letter_class (Args &&... chars) const | 
| A ratexp matching one character amongst chars.  More... | |
| template<typename LabelSet_ , typename... Args> | |
| auto | letter_class_ (const Args &&..., std::true_type) const -> value_t | 
| template<typename LabelSet_ > | |
| auto | letter_class_ (std::set< std::pair< typename LabelSet_::letter_t, typename LabelSet_::letter_t >> ccs, bool accept, std::false_type) const -> value_t | 
| value_t | lmul (const weight_t &w, value_t e) const | 
| Left-multiplication by a weight.  More... | |
| value_t | mul (value_t l, value_t r) const | 
| bool | open (bool o) const | 
| Whether unknown letters should be added, or rejected.  More... | |
| value_t | parse (const std::string &s, size_t &p) const | 
| std::ostream & | print (const value_t v, std::ostream &o, const std::string &format="text") const | 
| std::ostream & | print_set (std::ostream &o, const std::string &format="text") const | 
| value_t | rdiv (value_t l, value_t r) const | 
| value_t | rmul (value_t e, const weight_t &w) const | 
| Right-multiplication by a weight.  More... | |
| value_t | shuffle (value_t l, value_t r) const | 
| value_t | star (value_t e) const | 
| template<unsigned version = version::fsm_json> | |
| json::node_t * | to_json () const | 
| std::string | to_string (value_t e) const | 
| value_t | transpose (value_t e) const | 
| The transposed of this rational expression.  More... | |
| value_t | transposition (value_t e) const | 
| Add a transposition operator.  More... | |
| template<unsigned version = version::fsm_json> | |
| value_t | value_from_json (json::node_t const *p) const | 
| template<unsigned version = version::fsm_json> | |
| json::node_t * | value_to_json (value_t v) const | 
| std::string | vname (bool full=true) const | 
| Dynamic description key.  More... | |
| const weightset_ptr & | weightset () const | 
| word_t | word (label_t l) const | 
| Make a ‘word’ out of a ratexp.  More... | |
| value_t | zero () const | 
Static Public Member Functions | |
| static auto | atom (const label_t &v) -> value_t | 
| static bool | equals (value_t l, value_t r) | 
| Whether l == r.  More... | |
| static constexpr bool | has_one () | 
| static size_t | hash (const value_t &l) | 
| Hash l.  More... | |
| static constexpr bool | is_commutative_semiring () | 
| static constexpr bool | is_free () | 
| static bool | is_one (value_t v) ATTRIBUTE_PURE | 
| static constexpr bool | is_ratexpset () | 
| static bool | is_special (value_t v) | 
| When used as a LabelSet for automata.  More... | |
| static bool | less_than (value_t l, value_t r) | 
| Whether l < r.  More... | |
| static self_type | make (std::istream &is) | 
| Build from the description in is.  More... | |
| static value_t | one () | 
| static constexpr bool | show_one () | 
| static std::string | sname () | 
| Static description key.  More... | |
| static value_t | special () | 
| When used as a LabelSet for automata.  More... | |
| static constexpr star_status_t | star_status () | 
A typed ratexp set.
| Context | the LabelSet and WeightSet types. | 
| using awali::sttc::rat::ratexpset_impl< Context >::atom_t = ::awali::sttc::rat:: atom <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::complement_t = ::awali::sttc::rat:: complement <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::conjunction_t = ::awali::sttc::rat:: conjunction <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::const_visitor = rat::const_visitor<label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::context_t = Context | 
| using awali::sttc::rat::ratexpset_impl< Context >::identities_t = rat::identities | 
| using awali::sttc::rat::ratexpset_impl< Context >::inner_t = ::awali::sttc::rat:: inner <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::kind_t = labels_are_ratexps | 
| using awali::sttc::rat::ratexpset_impl< Context >::label_t = label_t_of<context_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::labelset_ptr = typename context_t::labelset_ptr | 
| using awali::sttc::rat::ratexpset_impl< Context >::labelset_t = labelset_t_of<context_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::ldiv_t = ::awali::sttc::rat:: ldiv <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::leaf_t = ::awali::sttc::rat:: leaf <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::letter_t = self_type | 
| using awali::sttc::rat::ratexpset_impl< Context >::lweight_t = ::awali::sttc::rat:: lweight <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::node_t = ::awali::sttc::rat:: node <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::one_t = ::awali::sttc::rat:: one <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::prod_t = ::awali::sttc::rat:: prod <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::ratexp_t = std::shared_ptr<const node_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::ratexps_t = typename node_t::ratexps_t | 
| using awali::sttc::rat::ratexpset_impl< Context >::rweight_t = ::awali::sttc::rat:: rweight <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::self_type = ratexpset<Context> | 
| using awali::sttc::rat::ratexpset_impl< Context >::shuffle_t = ::awali::sttc::rat:: shuffle <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::star_t = ::awali::sttc::rat:: star <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::sum_t = ::awali::sttc::rat:: sum <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::transposition_t = ::awali::sttc::rat:: transposition <label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::type_t = typename node_t::type_t | 
| using awali::sttc::rat::ratexpset_impl< Context >::unary_t = unary<Type, label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::value_t = typename node_t::value_t | 
The value this is a set of: typeful shared pointers.
| using awali::sttc::rat::ratexpset_impl< Context >::values_t = std::vector<value_t> | 
A value sequence.
| using awali::sttc::rat::ratexpset_impl< Context >::variadic_t = variadic<Type, label_t, weight_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::weight_t = typename weightset_t::value_t | 
| using awali::sttc::rat::ratexpset_impl< Context >::weightset_ptr = typename context_t::weightset_ptr | 
| using awali::sttc::rat::ratexpset_impl< Context >::weightset_t = weightset_t_of<context_t> | 
| using awali::sttc::rat::ratexpset_impl< Context >::word_t = self_type | 
| using awali::sttc::rat::ratexpset_impl< Context >::zero_t = ::awali::sttc::rat:: zero <label_t, weight_t> | 
| awali::sttc::rat::ratexpset_impl< Context >::ratexpset_impl | ( | const context_t & | ctx, | 
| identities_t | identities | ||
| ) | 
Constructor.
| ctx | the generator set for the labels, and the weight set. | 
| identities | the identities to guarantee | 
| auto awali::sttc::rat::ratexpset_impl< Context >::add | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
      
  | 
  static | 
| auto awali::sttc::rat::ratexpset_impl< Context >::complement | ( | value_t | e | ) | const | 
Add a complement operator.
| auto awali::sttc::rat::ratexpset_impl< Context >::concat | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conjunction | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::context | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | b | , | 
| typename b::value_t | v | ||
| ) | const | 
| value_t awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const letterset< GenSet > & | ls, | 
| typename letterset< GenSet >::value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const letterset< GenSet > & | ls, | 
| typename letterset< GenSet >::value_t | v | ||
| ) | const -> value_t | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const q & | ws, | 
| typename q::value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const r & | ws, | 
| typename r::value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const ratexpset_impl< Ctx2 > & | rs, | 
| typename ratexpset_impl< Ctx2 >::value_t | v | ||
| ) | const -> value_t | 
| value_t awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const ratexpset_impl< Ctx2 > & | ws, | 
| typename ratexpset_impl< Ctx2 >::value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | const z & | ws, | 
| typename z::value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | self_type | rs, | 
| value_t | v | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::conv | ( | std::istream & | is | ) | const | 
| std::set<value_t> awali::sttc::rat::ratexpset_impl< Context >::convs | ( | std::istream & | ) | const | 
      
  | 
  static | 
Whether l == r.
| auto awali::sttc::rat::ratexpset_impl< Context >::gather | ( | ratexps_t & | res, | 
| value_t | v | ||
| ) | const -> void | 
| auto awali::sttc::rat::ratexpset_impl< Context >::gather | ( | value_t | l, | 
| value_t | r | ||
| ) | const -> ratexps_t | 
      
  | 
  staticconstexpr | 
      
  | 
  static | 
Hash l.
| auto awali::sttc::rat::ratexpset_impl< Context >::identities | 
      
  | 
  staticconstexpr | 
      
  | 
  staticconstexpr | 
| bool awali::sttc::rat::ratexpset_impl< Context >::is_letter | ( | value_t | ) | const | 
      
  | 
  static | 
      
  | 
  staticconstexpr | 
| auto awali::sttc::rat::ratexpset_impl< Context >::is_series | 
      
  | 
  static | 
When used as a LabelSet for automata.
When used as WeightSet for automata.
| auto awali::sttc::rat::ratexpset_impl< Context >::is_zero | ( | value_t | v | ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::labelset | 
| auto awali::sttc::rat::ratexpset_impl< Context >::ldiv | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
      
  | 
  static | 
Whether l < r.
| auto awali::sttc::rat::ratexpset_impl< Context >::letter_class | ( | Args &&... | args | ) | const -> value_t | 
| value_t awali::sttc::rat::ratexpset_impl< Context >::letter_class | ( | Args &&... | chars | ) | const | 
A ratexp matching one character amongst chars.
| auto awali::sttc::rat::ratexpset_impl< Context >::letter_class_ | ( | const Args && | ..., | 
| std::true_type | |||
| ) | const -> value_t | 
| auto awali::sttc::rat::ratexpset_impl< Context >::letter_class_ | ( | std::set< std::pair< typename LabelSet_::letter_t, typename LabelSet_::letter_t >> | ccs, | 
| bool | accept, | ||
| std::false_type | |||
| ) | const -> value_t | 
| auto awali::sttc::rat::ratexpset_impl< Context >::lmul | ( | const weight_t & | w, | 
| value_t | e | ||
| ) | const | 
Left-multiplication by a weight.
      
  | 
  static | 
Build from the description in is.
| auto awali::sttc::rat::ratexpset_impl< Context >::mul | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
      
  | 
  static | 
| auto awali::sttc::rat::ratexpset_impl< Context >::open | ( | bool | o | ) | const | 
Whether unknown letters should be added, or rejected.
| o | whether to accept unknown letters | 
| value_t awali::sttc::rat::ratexpset_impl< Context >::parse | ( | const std::string & | s, | 
| size_t & | p | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::print | ( | const value_t | v, | 
| std::ostream & | o, | ||
| const std::string & | format = "text"  | 
        ||
| ) | const | 
| std::ostream& awali::sttc::rat::ratexpset_impl< Context >::print_set | ( | std::ostream & | o, | 
| const std::string & | format = "text"  | 
        ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::rdiv | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::rmul | ( | value_t | e, | 
| const weight_t & | w | ||
| ) | const | 
Right-multiplication by a weight.
      
  | 
  staticconstexpr | 
| auto awali::sttc::rat::ratexpset_impl< Context >::shuffle | ( | value_t | l, | 
| value_t | r | ||
| ) | const | 
      
  | 
  static | 
Static description key.
      
  | 
  static | 
When used as a LabelSet for automata.
| auto awali::sttc::rat::ratexpset_impl< Context >::star | ( | value_t | e | ) | const | 
      
  | 
  staticconstexpr | 
| json::node_t* awali::sttc::rat::ratexpset_impl< Context >::to_json | ( | ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::to_string | ( | value_t | e | ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::transpose | ( | value_t | e | ) | const | 
The transposed of this rational expression.
| auto awali::sttc::rat::ratexpset_impl< Context >::transposition | ( | value_t | e | ) | const | 
Add a transposition operator.
| value_t awali::sttc::rat::ratexpset_impl< Context >::value_from_json | ( | json::node_t const * | p | ) | const | 
| json::node_t* awali::sttc::rat::ratexpset_impl< Context >::value_to_json | ( | value_t | v | ) | const | 
| auto awali::sttc::rat::ratexpset_impl< Context >::vname | ( | bool | full = true | ) | const | 
Dynamic description key.
| auto awali::sttc::rat::ratexpset_impl< Context >::weightset | 
| word_t awali::sttc::rat::ratexpset_impl< Context >::word | ( | label_t | l | ) | const | 
Make a ‘word’ out of a ratexp.
| auto awali::sttc::rat::ratexpset_impl< Context >::zero |