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 |