18 return detail::product_registry().call(lhs, rhs);
23 product(
const std::vector<automaton>& auts)
25 return detail::product_vector_registry().call_variadic(auts);
36 return detail::shuffle_registry().call(lhs, rhs);
41 shuffle(
const std::vector<automaton>& auts)
43 return detail::shuffle_vector_registry().call_variadic(auts);
50 return detail::shuffle_ratexp_registry().call(lhs, rhs);
61 return detail::infiltration_registry().call(lhs, rhs);
68 return detail::infiltration_vector_registry().call_variadic(auts);
75 REGISTER_DEFINE(
power);
79 return detail::power_registry().call(aut, n);
86 return detail::conjunction_ratexp_registry().call(lhs, rhs);
automaton product_vector(const std::vector< automaton > &as)
Variadic bridge.
std::shared_ptr< detail::automaton_base > automaton
automaton product(const automaton &lhs, const automaton &rhs)
The product of automata lhs and rhs.
automaton shuffle_vector(const std::vector< automaton > &as)
Variadic bridge.
automaton shuffle(const automaton &lhs, const automaton &rhs)
The shuffle product of automata lhs and rhs.
std::shared_ptr< detail::ratexp_base > ratexp
automaton infiltration_vector(const std::vector< automaton > &as)
Variadic bridge.
ratexp shuffle_ratexp(const ratexp &lhs, const ratexp &rhs)
Bridge.
automaton power(const automaton &aut, unsigned n)
Repeated product of aut with itself.
automaton infiltration(const automaton &lhs, const automaton &rhs)
The infiltration of automata lhs and rhs.
ratexp conjunction_ratexp(const ratexp &lhs, const ratexp &rhs)
Bridge.
ratexp conjunction(const ratexp &lhs, const ratexp &rhs)
The Hadamard product of ratexps lhs and rhs.