7 #include <vcsn/algos/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)
100 (
const std::vector<automaton>& as,
bool lazy) ->
automaton);
248 (
const automaton& aut, std::ostream&
out,
bool detailed) -> std::ostream&);
496 (
const automaton& aut, std::ostream& o,
const std::string& fmt) -> std::ostream&);
500 (
const context&
ctx, std::ostream& o,
const std::string& fmt) -> std::ostream&);
508 (
const expression& exp, std::ostream& o,
const std::string& fmt) -> std::ostream&);
512 (
const label&
label, std::ostream& o,
const std::string& fmt) -> std::ostream&);
520 (
const weight&
weight, std::ostream& o,
const std::string& fmt) -> std::ostream&);
548 (
const context&
ctx,
unsigned num_states,
float density,
unsigned num_initial,
unsigned num_final,
float loop_chance) ->
automaton);
747 #undef REGISTRY_DECLARE
std::ostream & print_context(const context &ctx, std::ostream &o, const std::string &fmt)
Bridge (print).
std::shared_ptr< const detail::weight_base > weight
expression transpose_expression(const expression &exp)
Bridge (transpose).
polynomial read_polynomial(const context &ctx, std::istream &is)
Bridge.
automaton trie_stream(const context &ctx, std::istream &is, const std::string &format)
Bridge (trie).
context project_context(const context &ctx, integral_constant)
Bridge (project).
std::shared_ptr< detail::delay_automaton_impl< Aut >> delay_automaton
An automaton wrapper that presents the delay automaton.
automaton insplit(const automaton &aut, bool lazy)
Bridge.
automaton sort(const automaton &aut)
Bridge.
expression concatenate_expression(const expression &lhs, const expression &rhs)
Bridge (concatenate).
automaton multiply_repeated(const automaton &a, int min, int max, const std::string &algo)
Bridge (multiply).
std::ostream & info(const automaton &aut, std::ostream &out, bool detailed)
Bridge.
expression left_mult_expression(const weight &weight, const expression &exp)
Bridge (left_mult).
automaton_editor * make_automaton_editor(const context &ctx)
Bridge.
std::ostream & print_weight(const weight &weight, std::ostream &o, const std::string &fmt)
Bridge (print).
label synchronizing_word(const automaton &aut, const std::string &algo)
Bridge.
expression sum_expression(const expression &lhs, const expression &rhs)
Bridge (sum).
std::ostream & print_polynomial(const polynomial &polynomial, std::ostream &o, const std::string &fmt)
Bridge (print).
automaton zpc(const expression &exp, const std::string &algo)
Bridge.
expansion sum_expansion(const expansion &lhs, const expansion &rhs)
Bridge (sum).
expression lift_expression(const expression &exp)
Bridge (lift).
bool is_synchronized(const automaton &aut)
Bridge.
automaton cominimize(const automaton &aut, const std::string &algo)
Bridge.
label read_label(const context &ctx, std::istream &is, bool quoted)
Bridge.
weight weight_series(const automaton &aut)
Bridge.
expression right_mult_expression(const expression &exp, const weight &weight)
Bridge (right_mult).
bool are_isomorphic(const automaton &aut1, const automaton &aut2)
Bridge.
polynomial split_polynomial(const polynomial &poly)
Bridge (split).
automaton reduce(const automaton &aut)
Bridge.
automaton difference(const automaton &lhs, const automaton &rhs)
Bridge.
An expressionset can implement several different sets of identities on expressions.
automaton pair(const automaton &aut, bool keep_initials)
Bridge.
polynomial sum_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (sum).
automaton condense(const automaton &aut)
Bridge.
automaton copy(const automaton &aut)
Bridge.
A simple placeholder for integral constants.
automaton right_mult(const automaton &aut, const weight &weight, const std::string &algo)
Bridge.
bool is_valid(const automaton &aut)
Bridge.
automaton conjunction_repeated(const automaton &aut, unsigned n)
Bridge (conjunction).
label project_label(const label &lbl, integral_constant)
Bridge (project).
automaton subword(const automaton &aut)
Bridge.
bool is_trim(const automaton &aut)
Bridge.
bool is_costandard(const automaton &aut)
Bridge.
automaton lift_automaton(const automaton &aut, vcsn::rat::identities ids, integral_constant)
Bridge.
automaton double_ring(const context &ctx, unsigned n, const std::vector< unsigned > &finals)
Bridge.
automaton de_bruijn(const dyn::context &ctx, unsigned n)
Bridge.
expression expression_zero(const context &ctx, rat::identities ids)
Bridge.
automaton realtime(const automaton &aut)
Bridge.
bool is_coaccessible(const automaton &aut)
Bridge.
bool has_bounded_lag(const automaton &aut)
Bridge.
automaton standard_expression(const expression &exp)
Bridge (standard).
automaton compose(automaton &lhs, automaton &rhs, bool lazy)
Bridge.
bool is_synchronizing(const automaton &aut)
Bridge.
expression complement_expression(const expression &exp)
Bridge (complement).
expression to_expression(const automaton &aut, vcsn::rat::identities ids, const std::string &algo)
Bridge.
bool is_useless(const automaton &aut)
Bridge.
static dyn::context ctx(const driver &d)
Get the context of the driver.
automaton divkbaseb(const context &ctx, unsigned divisor, unsigned base)
Bridge.
Abstract Builder (the design pattern) for automata.
context make_context(const std::string &name)
Bridge.
label ambiguous_word(const automaton &aut)
Bridge.
weight constant_term(const expression &exp)
Bridge.
automaton random_automaton(const context &ctx, unsigned num_states, float density, unsigned num_initial, unsigned num_final, float loop_chance)
Bridge.
An input/output format for valuesets.
expression copy_expression(const expression &exp, const context &ctx, rat::identities ids)
Bridge (copy).
automaton normalize(const automaton &aut)
Bridge.
weight multiply_weight_repeated(const weight &wgt, int min, int max)
Bridge (multiply).
polynomial shortest(const automaton &aut, boost::optional< unsigned > num, boost::optional< unsigned > len)
Bridge.
static identities ids(const driver &d)
Get the identities of the driver.
expansion tuple_expansion(const std::vector< expansion > &es)
Bridge (tuple).
expression multiply_expression(const expression &lhs, const expression &rhs)
Bridge (multiply).
weight read_weight(const context &ctx, std::istream &is)
Bridge.
expression transposition_expression(const expression &exp)
Bridge (transposition).
bool is_letterized(const automaton &aut)
Bridge.
automaton transpose(automaton &aut)
Bridge.
polynomial lightest(const automaton &aut, unsigned num, const std::string &algo)
Bridge.
expression shuffle_expression(const expression &lhs, const expression &rhs)
Bridge (shuffle).
automaton conjunction(const std::vector< automaton > &as, bool lazy)
Bridge (conjunction).
polynomial ldiv_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (ldiv).
expression expression_one(const context &ctx, rat::identities ids)
Bridge.
bool is_empty(const automaton &aut)
Bridge.
automaton partial_identity(const automaton &aut)
Bridge.
automaton accessible(const automaton &aut)
Bridge.
automaton filter(const automaton &aut, const std::vector< unsigned > &states)
Bridge.
automaton cotrie(const polynomial &poly)
Bridge.
bool are_equivalent(const automaton &aut1, const automaton &aut2)
Bridge.
bool is_partial_identity(const automaton &aut)
Bridge.
std::ostream & print_expression(const expression &exp, std::ostream &o, const std::string &fmt)
Bridge (print).
polynomial derivation(const expression &exp, const label &lbl, bool breaking)
Bridge.
weight multiply_weight(const weight &lhs, const weight &rhs)
Bridge (multiply).
polynomial conjunction_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (conjunction).
automaton proper(const automaton &aut, direction dir, bool prune, const std::string &algo)
Bridge.
automaton complement(const automaton &aut)
Bridge.
automaton derived_term(const expression &exp, const std::string &algo)
Bridge.
automaton costandard(const automaton &aut)
Bridge.
automaton prefix(const automaton &aut)
Bridge.
expression to_expression_class(const context &ctx, rat::identities ids, const letter_class_t &letters, bool accept)
Bridge (to_expression).
context context_of_expression(const expression &exp)
Bridge (context_of).
automaton complete(const automaton &aut)
Bridge.
context context_of_expansion(const expansion &exp)
Bridge (context_of).
automaton project(const automaton &aut, integral_constant)
Bridge.
automaton random_automaton_deterministic(const context &ctx, unsigned num_states)
Bridge.
automaton scc(const automaton &aut, const std::string &algo)
Bridge.
expression expand(const expression &exp)
Bridge.
bool has_twins_property(const automaton &aut)
Bridge.
expression multiply_expression_repeated(const expression &re, int min, int max)
Bridge (multiply).
expression to_expression_label(const context &ctx, rat::identities ids, const label &lbl)
Bridge (to_expression).
bool is_synchronized_by(const automaton &aut, const label &word)
Bridge.
automaton copy_convert(const automaton &aut, const context &ctx)
Bridge (copy).
expression infiltration_expression(const expression &lhs, const expression &rhs)
Bridge (infiltration).
std::set< std::pair< std::string, std::string >> letter_class_t
A set of letter ranges.
#define REGISTRY_DECLARE(Name, Signature)
automaton push_weights(const automaton &aut)
Bridge.
bool is_complete(const automaton &aut)
Bridge.
automaton levenshtein(const dyn::context &ctx)
Bridge.
automaton trie(const polynomial &poly)
Bridge.
bool has_lightening_cycle(const automaton &aut)
Bridge.
polynomial multiply_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (multiply).
std::shared_ptr< const detail::label_base > label
context make_word_context(const context &ctx)
Bridge.
expression conjunction_expression(const expression &lhs, const expression &rhs)
Bridge (conjunction).
automaton universal(const automaton &aut)
Bridge.
bool is_out_sorted(const automaton &aut)
Bridge.
bool is_deterministic(const automaton &aut)
Bridge.
automaton synchronize(const automaton &aut)
Bridge.
context join(const context &c1, const context &c2)
Bridge.
automaton coaccessible(const automaton &aut)
Bridge.
automaton ladybird(const dyn::context &ctx, unsigned n)
Bridge.
automaton star(const automaton &a, const std::string &algo)
Bridge.
automaton u(const context &ctx, unsigned n)
Bridge.
automaton infiltration(const std::vector< automaton > &as)
Bridge (infiltration).
expression star_normal_form(const expression &exp)
Bridge.
expression difference_expression(const expression &lhs, const expression &rhs)
Bridge (difference).
automaton thompson(const expression &exp)
Bridge.
std::istringstream is
The input stream: the specification to translate.
polynomial project_polynomial(const polynomial &poly, integral_constant)
Bridge (project).
polynomial lgcd_polynomial(const polynomial &lhs, const polynomial &rhs)
Bridge (lgcd).
bool is_functional(const automaton &aut)
Bridge.
expansion left_mult_expansion(const weight &weight, const expansion &exp)
Bridge (left_mult).
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
std::ostream & info_expression(const expression &exp, std::ostream &o)
Bridge (info).
automaton shuffle(const std::vector< automaton > &as)
Bridge (shuffle).
bool is_codeterministic(const automaton &aut)
Bridge.
bool is_cycle_ambiguous(const automaton &aut)
Bridge.
std::size_t num_components(const automaton &aut)
Bridge.
bool is_standard(const automaton &aut)
Bridge.
std::shared_ptr< const detail::polynomial_base > polynomial
bool are_equivalent_expression(const expression &r1, const expression &r2)
Bridge (are_equivalent).
automaton letterize(const automaton &aut)
Bridge.
bool is_ambiguous(const automaton &aut)
Bridge.
bool is_accessible(const automaton &aut)
Bridge.
std::ostream & print_label(const label &label, std::ostream &o, const std::string &fmt)
Bridge (print).
unsigned star_height(const expression &exp)
Bridge.
size_t num_tapes(const context &ctx)
Bridge.
expression rdiv_expression(const expression &lhs, const expression &rhs)
Bridge (rdiv).
automaton component(const automaton &aut, unsigned num)
Bridge.
automaton eliminate_state(const automaton &aut, int state)
Bridge.
ATTRIBUTE_NORETURN std::enable_if_t<!is_free_boolean< Aut >), Aut > minimize(const Aut &, brzozowski_tag)
Handling of errors for dyn::minimize.
weight eval(const automaton &aut, const label &lbl)
Bridge.
automaton factor(const automaton &aut)
Bridge.
bool is_eps_acyclic(const automaton &aut)
Bridge.
automaton standard(const automaton &aut)
Bridge.
automaton suffix(const automaton &aut)
Bridge.
automaton trim(const automaton &aut)
Bridge.
automaton cotrie_stream(const context &ctx, std::istream &is, const std::string &format)
Bridge (cotrie).
automaton cerny(const context &ctx, unsigned num_states)
Bridge.
expression ldiv_expression(const expression &lhs, const expression &rhs)
Bridge (ldiv).
std::shared_ptr< const detail::expansion_base > expansion
bool is_normalized(const automaton &aut)
Bridge.
automaton focus(const automaton &aut, integral_constant)
Bridge.
expansion complement_expansion(const expansion &xpn)
Bridge (complement).
automaton determinize(const automaton &aut, const std::string &algo)
Bridge.
automaton multiply(const automaton &lhs, const automaton &rhs, const std::string &algo)
Bridge.
rat::identities identities(const expression &exp)
Bridge.
automaton left_mult(const weight &weight, const automaton &aut, const std::string &algo)
Bridge.
std::shared_ptr< detail::expression_base > expression
automaton codeterminize(const automaton &aut, const std::string &algo)
Bridge.
bool is_proper(const automaton &aut)
Bridge.
automaton strip(const automaton &aut)
Bridge.
automaton lightest_automaton(const automaton &aut, const std::string &algo)
Bridge.
std::shared_ptr< const detail::context_base > context
A dyn::context.
weight sum_weight(const weight &lhs, const weight &rhs)
Bridge (sum).
automaton sum(const automaton &lhs, const automaton &rhs, const std::string &algo)
Bridge.
expansion right_mult_expansion(const expansion &exp, const weight &weight)
Bridge (right_mult).
bool less_than_expression(const expression &lhs, const expression &rhs)
Bridge (less_than).
bool is_realtime(const automaton &aut)
Bridge.
automaton conjugate(const automaton &a)
Bridge.
bool is_valid_expression(const expression &exp)
Bridge (is_valid).
std::ostream & print_expansion(const expansion &expansion, std::ostream &o, const std::string &fmt)
Bridge (print).
label multiply_label(const label &lhs, const label &rhs)
Bridge (multiply).
polynomial split(const expression &exp)
Bridge.
std::ostream & print(const automaton &aut, std::ostream &o, const std::string &fmt)
Bridge.
std::ostream & list_polynomial(const polynomial &polynomial, std::ostream &o)
Bridge (list).
expression tuple_expression(const std::vector< expression > &es)
Bridge (tuple).
std::shared_ptr< detail::automaton_base > automaton
context context_of(const automaton &aut)
Bridge.
expansion to_expansion(const expression &exp)
Bridge.