7 #include <vcsn/algos/fwd.hh>
8 #include <vcsn/dyn/fwd.hh>
16 class automaton_editor;
19 namespace vcsn {
namespace dyn {
namespace detail {
21 #define REGISTRY_DECLARE(Name, Signature) \
22 using Name ## _t = auto Signature; \
24 bool Name ## _register(const signature& sig, Name ## _t fn)
132 (
const std::vector<automaton>& as,
bool lazy) ->
automaton);
296 (
const automaton& aut, std::ostream&
out,
unsigned details) -> std::ostream&);
572 (
const automaton& aut, std::ostream& o,
const std::string& fmt) -> std::ostream&);
576 (
const context&
ctx, std::ostream& o,
const std::string& fmt) -> std::ostream&);
584 (
const expression& exp, std::ostream& o,
const std::string& fmt) -> std::ostream&);
588 (
const label&
label, std::ostream& o,
const std::string& fmt) -> std::ostream&);
596 (
const weight&
weight, std::ostream& o,
const std::string& fmt) -> std::ostream&);
636 (
const context&
ctx,
unsigned num_states,
float density,
unsigned num_initial,
unsigned num_final, boost::optional<unsigned> max_labels,
float loop_chance,
const std::string& weights) ->
automaton);
859 #undef REGISTRY_DECLARE
bool is_letterized(const automaton &aut)
Bridge.
automaton costandard(const automaton &aut)
Bridge.
automaton complement(const automaton &aut)
Bridge.
automaton thompson(const expression &exp)
Bridge.
automaton partial_identity(const automaton &aut)
Bridge.
polynomial split(const expression &exp)
Bridge.
label multiply_label(const label &lhs, const label &rhs)
Bridge (multiply).
Abstract Builder (the design pattern) for automata.
std::set< std::pair< std::string, std::string >> letter_class_t
A set of letter ranges.
automaton lift_automaton(const automaton &aut, identities ids, integral_constant)
Bridge.
label project_label(const label &lbl, integral_constant)
Bridge (project).
label read_label(const context &ctx, std::istream &is, bool quoted)
Bridge.
bool is_synchronized_by(const automaton &aut, const label &word)
Bridge.
automaton component(const automaton &aut, unsigned num)
Bridge.
automaton eliminate_state(const automaton &aut, int state)
Bridge.
expression transpose_expression(const expression &exp)
Bridge (transpose).
A simple placeholder for integral constants.
bool is_out_sorted(const automaton &aut)
Bridge.
weight read_weight(const context &ctx, std::istream &is)
Bridge.
bool has_twins_property(const automaton &aut)
Bridge.
label ldivide_label(const label &lhs, const label &rhs)
Bridge (ldivide).
context project_context(const context &ctx, integral_constant)
Bridge (project).
expression concatenate_expression(const expression &lhs, const expression &rhs)
Bridge (concatenate).
bool are_isomorphic(const automaton &aut1, const automaton &aut2)
Bridge.
automaton codeterminize(const automaton &aut, const std::string &algo)
Bridge.
expression shuffle_expression(const expression &lhs, const expression &rhs)
Bridge (shuffle).
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
automaton cominimize(const automaton &aut, const std::string &algo)
Bridge.
automaton infiltrate(const std::vector< automaton > &as)
Bridge (infiltrate).
automaton lweight(const weight &weight, const automaton &aut, const std::string &algo)
Bridge.
bool is_eps_acyclic(const automaton &aut)
Bridge.
bool is_codeterministic(const automaton &aut)
Bridge.
bool is_trim(const automaton &aut)
Bridge.
expression difference_expression(const expression &lhs, const expression &rhs)
Bridge (difference).
automaton insplit(const automaton &aut, bool lazy)
Bridge.
bool has_lightening_cycle(const automaton &aut)
Bridge.
expression random_expression(const context &ctx, const std::string ¶m, identities ids)
Bridge.
expansion conjunction_expansion(const expansion &lhs, const expansion &rhs)
Bridge (conjunction).
expression compose_expression(const expression &lhs, const expression &rhs)
Bridge (compose).
automaton focus(const automaton &aut, integral_constant)
Bridge.
automaton trie(const polynomial &poly)
Bridge.
automaton derived_term(const expression &exp, const std::string &algo)
Bridge.
automaton synchronize(const automaton &aut)
Bridge.
automaton random_automaton_deterministic(const context &ctx, unsigned num_states)
Bridge.
polynomial lightest(const automaton &aut, unsigned num, const std::string &algo)
Bridge.
expansion compose_expansion(const expansion &lhs, const expansion &rhs)
Bridge (compose).
automaton ladybird(const dyn::context &ctx, unsigned n)
Bridge.
automaton star(const automaton &a, const std::string &algo)
Bridge.
automaton realtime(const automaton &aut)
Bridge.
std::size_t num_components(const automaton &aut)
Bridge.
polynomial rweight_polynomial(const polynomial &poly, const weight &weight)
Bridge (rweight).
std::ostream & print_context(const context &ctx, std::ostream &o, const std::string &fmt)
Bridge (print).
weight rdivide_weight(const weight &lhs, const weight &rhs)
Bridge (rdivide).
bool is_proper(const automaton &aut)
Bridge.
bool is_standard(const automaton &aut)
Bridge.
automaton levenshtein(const dyn::context &ctx)
Bridge.
context make_word_context(const context &ctx)
Bridge.
automaton compose(const automaton &lhs, const automaton &rhs, bool lazy)
Bridge.
label synchronizing_word(const automaton &aut, const std::string &algo)
Bridge.
automaton trim(const automaton &aut)
Bridge.
automaton copy(const automaton &aut)
Bridge.
expression star_normal_form(const expression &exp)
Bridge.
automaton cerny(const context &ctx, unsigned num_states)
Bridge.
bool is_ambiguous(const automaton &aut)
Bridge.
std::ostream & print_expansion(const expansion &expansion, std::ostream &o, const std::string &fmt)
Bridge (print).
automaton accessible(const automaton &aut)
Bridge.
An input/output format for valuesets.
expression to_expression(const automaton &aut, identities ids, const std::string &algo)
Bridge.
weight ldivide_weight(const weight &lhs, const weight &rhs)
Bridge (ldivide).
automaton filter(const automaton &aut, const std::vector< unsigned > &states)
Bridge.
expansion project_expansion(const expansion &exp, integral_constant)
Bridge (project).
automaton de_bruijn(const dyn::context &ctx, unsigned n)
Bridge.
automaton prefix(const automaton &aut)
Bridge.
weight weight_series(const automaton &aut)
Bridge.
std::ostream & print_expression(const expression &exp, std::ostream &o, const std::string &fmt)
Bridge (print).
bool is_functional(const automaton &aut)
Bridge.
context tuple_context(const std::vector< context > &cs)
Bridge (tuple).
weight weight_one(const context &ctx)
Bridge.
automaton conjunction_repeated(const automaton &aut, unsigned n)
Bridge (conjunction).
expression ldivide_expression(const expression &lhs, const expression &rhs)
Bridge (ldivide).
bool is_realtime(const automaton &aut)
Bridge.
expansion to_expansion(const expression &exp)
Bridge.
bool are_equivalent(const automaton &aut1, const automaton &aut2)
Bridge.
bool is_accessible(const automaton &aut)
Bridge.
automaton push_weights(const automaton &aut)
Bridge.
ATTRIBUTE_NORETURN std::enable_if_t<!is_free_boolean< Aut >), Aut > minimize(const Aut &, brzozowski_tag)
Handling of errors for dyn::minimize.
expression infiltrate_expression(const expression &lhs, const expression &rhs)
Bridge (infiltrate).
bool is_synchronizing(const automaton &aut)
Bridge.
expansion complement_expansion(const expansion &xpn)
Bridge (complement).
automaton coaccessible(const automaton &aut)
Bridge.
expression project_expression(const expression &exp, integral_constant)
Bridge (project).
automaton conjugate(const automaton &a)
Bridge.
bool is_costandard(const automaton &aut)
Bridge.
automaton standard(const automaton &aut)
Bridge.
unsigned star_height(const expression &exp)
Bridge.
std::ostream & print(const automaton &aut, std::ostream &o, const std::string &fmt)
Bridge.
automaton_editor * make_automaton_editor(const context &ctx)
Bridge.
context context_of_expansion(const expansion &exp)
Bridge (context_of).
weight random_weight(const context &ctx, const std::string ¶m)
Bridge.
automaton ldivide(const automaton &aut1, const automaton &aut2)
Bridge (ldivide).
std::ostream & list_polynomial(const polynomial &polynomial, std::ostream &o)
Bridge (list).
automaton inductive(const expression &exp, const std::string &algo)
Bridge.
automaton trie_stream(const context &ctx, std::istream &is, const std::string &format)
Bridge (trie).
expression complement_expression(const expression &exp)
Bridge (complement).
polynomial multiply_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (multiply).
automaton letterize(const automaton &aut)
Bridge.
automaton u(const context &ctx, unsigned n)
Bridge.
automaton shuffle(const std::vector< automaton > &as)
Bridge (shuffle).
expression copy_expression(const expression &exp, const context &ctx, identities ids)
Bridge (copy).
label multiply_label_repeated(const label &re, int exp)
Bridge (multiply).
automaton double_ring(const context &ctx, unsigned n, const std::vector< unsigned > &finals)
Bridge.
expansion lweight_expansion(const weight &weight, const expansion &exp)
Bridge (lweight).
bool is_useless(const automaton &aut)
Bridge.
automaton complete(const automaton &aut)
Bridge.
automaton quotkbaseb(const context &ctx, unsigned divisor, unsigned base)
Bridge.
automaton factor(const automaton &aut)
Bridge.
Template-less root for contexts.
expression multiply_expression_repeated(const expression &re, int min, int max)
Bridge (multiply).
polynomial tuple_polynomial(const std::vector< polynomial > &ps)
Bridge (tuple).
expression lift_expression(const expression &exp)
Bridge (lift).
expression to_expression_label(const context &ctx, identities ids, const label &lbl)
Bridge (to_expression).
automaton divkbaseb(const context &ctx, unsigned divisor, unsigned base)
Bridge.
automaton cotrie(const polynomial &poly)
Bridge.
expression partial_identity_expression(const expression &exp)
Bridge (partial_identity).
expression rweight_expression(const expression &exp, const weight &weight)
Bridge (rweight).
automaton multiply_repeated(const automaton &a, int min, int max, const std::string &algo)
Bridge (multiply).
context context_of_expression(const expression &exp)
Bridge (context_of).
automaton subword(const automaton &aut)
Bridge.
automaton standard_expression(const expression &exp)
Bridge (standard).
bool has_bounded_lag(const automaton &aut)
Bridge.
std::ostream & info_expression(const expression &exp, std::ostream &o)
Bridge (info).
size_t num_tapes(const context &ctx)
Bridge.
bool are_equivalent_expression(const expression &r1, const expression &r2)
Bridge (are_equivalent).
expression lweight_expression(const weight &weight, const expression &exp)
Bridge (lweight).
automaton determinize(const automaton &aut, const std::string &algo)
Bridge.
automaton rdivide(const automaton &aut1, const automaton &aut2)
Bridge.
bool is_deterministic(const automaton &aut)
Bridge.
context context_of_polynomial(const polynomial &poly)
Bridge (context_of).
automaton zpc(const expression &exp, const std::string &algo)
Bridge.
polynomial shortest(const automaton &aut, boost::optional< unsigned > num, boost::optional< unsigned > len)
Bridge.
polynomial lgcd_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (lgcd).
bool is_complete(const automaton &aut)
Bridge.
weight add_weight(const weight &lhs, const weight &rhs)
Bridge (add).
expression multiply_expression(const expression &lhs, const expression &rhs)
Bridge (multiply).
expansion tuple_expansion(const std::vector< expansion > &es)
Bridge (tuple).
polynomial compose_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (compose).
bool is_valid(const automaton &aut)
Bridge.
expansion rweight_expansion(const expansion &exp, const weight &weight)
Bridge (rweight).
context join(const context &c1, const context &c2)
Bridge.
bool is_valid_expression(const expression &exp)
Bridge (is_valid).
automaton transpose(automaton &aut)
Bridge.
weight multiply_weight_repeated(const weight &wgt, int min, int max)
Bridge (multiply).
expression expression_zero(const context &ctx, identities ids)
Bridge.
weight multiply_weight(const weight &lhs, const weight &rhs)
Bridge (multiply).
context make_context(const std::string &name)
Bridge.
expression transposition_expression(const expression &exp)
Bridge (transposition).
std::ostream & print_weight(const weight &weight, std::ostream &o, const std::string &fmt)
Bridge (print).
automaton copy_convert(const automaton &aut, const context &ctx)
Bridge (copy).
expression rdivide_expression(const expression &lhs, const expression &rhs)
Bridge (rdivide).
std::shared_ptr< detail::delay_automaton_impl< Aut >> delay_automaton
An automaton wrapper that presents the delay automaton.
polynomial project_polynomial(const polynomial &poly, integral_constant)
Bridge (project).
static identities ids(const driver &d)
Get the identities of the driver.
identities identities_of(const expression &exp)
Bridge.
expansion ldivide_expansion(const expansion &lhs, const expansion &rhs)
Bridge (ldivide).
polynomial add_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (add).
bool is_normalized(const automaton &aut)
Bridge.
std::ostream & print_polynomial(const polynomial &polynomial, std::ostream &o, const std::string &fmt)
Bridge (print).
polynomial derivation(const expression &exp, const label &lbl, bool breaking)
Bridge.
automaton rweight(const automaton &aut, const weight &weight, const std::string &algo)
Bridge.
#define REGISTRY_DECLARE(Name, Signature)
automaton multiply(const automaton &lhs, const automaton &rhs, const std::string &algo)
Bridge.
automaton proper(const automaton &aut, direction dir, bool prune, const std::string &algo)
Bridge.
std::ostream & print_label(const label &label, std::ostream &o, const std::string &fmt)
Bridge (print).
automaton cotrie_stream(const context &ctx, std::istream &is, const std::string &format)
Bridge (cotrie).
automaton conjunction(const std::vector< automaton > &as, bool lazy)
Bridge (conjunction).
automaton difference(const automaton &lhs, const automaton &rhs)
Bridge.
weight weight_zero(const context &ctx)
Bridge.
automaton suffix(const automaton &aut)
Bridge.
automaton tuple(const std::vector< automaton > &as)
Bridge.
expression expand(const expression &exp)
Bridge.
automaton random_automaton(const context &ctx, unsigned num_states, float density, unsigned num_initial, unsigned num_final, boost::optional< unsigned > max_labels, float loop_chance, const std::string &weights)
Bridge.
expression conjunction_expression(const expression &lhs, const expression &rhs)
Bridge (conjunction).
label rdivide_label(const label &lhs, const label &rhs)
Bridge (rdivide).
polynomial conjunction_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (conjunction).
bool less_than_expression(const expression &lhs, const expression &rhs)
Bridge (less_than).
weight constant_term(const expression &exp)
Bridge.
bool is_partial_identity(const automaton &aut)
Bridge.
automaton add(const automaton &lhs, const automaton &rhs, const std::string &algo)
Bridge.
weight evaluate(const automaton &aut, const label &lbl)
Bridge.
polynomial lweight_polynomial(const weight &weight, const polynomial &poly)
Bridge (lweight).
automaton project(const automaton &aut, integral_constant)
Bridge.
bool is_coaccessible(const automaton &aut)
Bridge.
expression to_expression_class(const context &ctx, identities ids, const letter_class_t &letters, bool accept)
Bridge (to_expression).
polynomial read_polynomial(const context &ctx, std::istream &is)
Bridge.
expression expression_one(const context &ctx, identities ids)
Bridge.
automaton reduce(const automaton &aut)
Bridge.
automaton pair(const automaton &aut, bool keep_initials)
Bridge.
automaton normalize(const automaton &aut)
Bridge.
automaton universal(const automaton &aut)
Bridge.
label ambiguous_word(const automaton &aut)
Bridge.
std::ostream & info(const automaton &aut, std::ostream &out, unsigned details)
Bridge.
value_impl< detail::expression_tag > expression
expression tuple_expression(const std::vector< expression > &es)
Bridge (tuple).
automaton lightest_automaton(const automaton &aut, unsigned k, const std::string &algo)
Bridge.
bool is_synchronized(const automaton &aut)
Bridge.
weight eval_polynomial(const automaton &aut, const polynomial &poly)
Bridge (evaluate).
bool is_empty(const automaton &aut)
Bridge.
expansion add_expansion(const expansion &lhs, const expansion &rhs)
Bridge (add).
automaton condense(const automaton &aut)
Bridge.
automaton sort(const automaton &aut)
Bridge.
context context_of(const automaton &aut)
Bridge.
expression add_expression(const expression &lhs, const expression &rhs)
Bridge (add).
bool is_cycle_ambiguous(const automaton &aut)
Bridge.
polynomial ldivide_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (ldivide).
polynomial split_polynomial(const polynomial &poly)
Bridge (split).
automaton strip(const automaton &aut)
Bridge.
automaton scc(const automaton &aut, const std::string &algo)
Bridge.