![]() |
Vcsn
2.2
Be Rational
|
#include <iostream>
#include <map>
#include <utility>
#include <vcsn/algos/insplit.hh>
#include <vcsn/algos/strip.hh>
#include <vcsn/core/automaton-decorator.hh>
#include <vcsn/core/join-automata.hh>
#include <vcsn/core/lazy-tuple-automaton.hh>
#include <vcsn/core/tuple-automaton.hh>
#include <vcsn/ctx/context.hh>
#include <vcsn/ctx/traits.hh>
#include <vcsn/dyn/automaton.hh>
#include <vcsn/dyn/expression.hh>
#include <vcsn/dyn/polynomial.hh>
#include <vcsn/misc/tuple.hh>
#include <vcsn/misc/zip-maps.hh>
Go to the source code of this file.
Classes | |
class | vcsn::detail::product_automaton_impl< Lazy, Aut, Auts > |
Build the (accessible part of the) product. More... | |
Namespaces | |
vcsn | |
vcsn::detail | |
vcsn::dyn | |
vcsn::dyn::detail | |
Typedefs | |
template<bool Lazy, Automaton Aut, Automaton... Auts> | |
using | vcsn::product_automaton = std::shared_ptr< detail::product_automaton_impl< Lazy, Aut, Auts...>> |
A product automaton as a shared pointer. More... | |
Functions | |
template<bool Lazy, Automaton Aut, Automaton... Auts> | |
auto | vcsn::make_product_automaton (Aut aut, const Auts &...auts) -> product_automaton< Lazy, Aut, Auts...> |
template<Automaton... Auts> | |
auto | vcsn::conjunction (const Auts &...as) -> tuple_automaton< decltype(meet_automata(as...)), Auts...> |
Build the (accessible part of the) conjunction. More... | |
template<Automaton... Auts> | |
auto | vcsn::conjunction_lazy (const Auts &...as) -> product_automaton< true, decltype(meet_automata(as...)), Auts...> |
Build the (accessible part of the) conjunction, on-the-fly. More... | |
template<std::size_t I, Automaton Aut> | |
auto | vcsn::dyn::detail::do_insplit (Aut &aut) -> std::enable_if_t< labelset_t_of< Aut >::has_one()&&I!=0 |
template<std::size_t I, Automaton Aut> | |
autodecltype(insplit(aut)) std::enable_if_t <!labelset_t_of< Aut > ::has_one()||I==0, Aut & > | vcsn::dyn::detail::do_insplit (Aut &aut) |
template<typename Auts , size_t... I> | |
automaton | vcsn::dyn::detail::conjunction_ (const std::vector< automaton > &as, bool lazy, vcsn::detail::index_sequence< I...>) |
Bridge helper. More... | |
template<typename Auts , typename Bool > | |
automaton | vcsn::dyn::detail::conjunction (const std::vector< automaton > &as, bool lazy) |
Bridge (conjunction). More... | |
template<Automaton... Auts> | |
auto | vcsn::shuffle (const Auts &...as) -> tuple_automaton< decltype(join_automata(as...)), Auts...> |
The (accessible part of the) shuffle product. More... | |
template<typename Auts , size_t... I> | |
automaton | vcsn::dyn::detail::shuffle_ (const std::vector< automaton > &as, vcsn::detail::index_sequence< I...>) |
Variadic bridge helper. More... | |
template<typename Auts > | |
automaton | vcsn::dyn::detail::shuffle (const std::vector< automaton > &as) |
Bridge (shuffle). More... | |
template<typename ValueSet > | |
ValueSet::value_t | vcsn::shuffle (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs) |
Shuffle product of expressions. More... | |
template<typename ExpSetLhs , typename ExpSetRhs > | |
expression | vcsn::dyn::detail::shuffle_expression (const expression &lhs, const expression &rhs) |
Bridge (shuffle). More... | |
template<Automaton A1, Automaton A2> | |
auto | vcsn::infiltration (const A1 &a1, const A2 &a2) -> tuple_automaton< decltype(join_automata(a1, a2)), A1, A2 > |
The (accessible part of the) infiltration product. More... | |
template<Automaton A1, Automaton A2, Automaton A3, Automaton... Auts> | |
auto | vcsn::infiltration (const A1 &a1, const A2 &a2, const A3 &a3, const Auts &...as) -> decltype(infiltration(infiltration(a1, a2), a3, as...)) |
The (accessible part of the) infiltration product. More... | |
template<typename Auts , size_t... I> | |
automaton | vcsn::dyn::detail::infiltration_ (const std::vector< automaton > &as, vcsn::detail::index_sequence< I...>) |
Variadic bridge helper. More... | |
template<typename Auts > | |
automaton | vcsn::dyn::detail::infiltration (const std::vector< automaton > &as) |
Bridge (infiltration). More... | |
template<typename ValueSet > | |
ValueSet::value_t | vcsn::infiltration (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs) |
Infiltration product of expressions. More... | |
template<typename ExpSetLhs , typename ExpSetRhs > | |
expression | vcsn::dyn::detail::infiltration_expression (const expression &lhs, const expression &rhs) |
Bridge (infiltration). More... | |
template<Automaton Aut> | |
auto | vcsn::conjunction (const Aut &aut, unsigned n) -> fresh_automaton_t_of< Aut > |
template<Automaton Aut, typename Unsigned > | |
automaton | vcsn::dyn::detail::conjunction_repeated (const automaton &aut, unsigned n) |
Bridge (conjunction). More... | |
template<typename ValueSet > | |
ValueSet::value_t | vcsn::conjunction (const ValueSet &rs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs) |
Intersection/Hadamard product of expressions/polynomials. More... | |
template<typename ExpSetLhs , typename ExpSetRhs > | |
expression | vcsn::dyn::detail::conjunction_expression (const expression &lhs, const expression &rhs) |
Bridge (conjunction). More... | |
template<typename PolynomialSetLhs , typename PolynomialSetRhs > | |
polynomial | vcsn::dyn::detail::conjunction_polynomial (const polynomial &lhs, const polynomial &rhs) |
Bridge (conjunction). More... | |