Vcsn
2.0
Be Rational
|
#include <iostream>
#include <map>
#include <utility>
#include <vcsn/algos/insplit.hh>
#include <vcsn/algos/strip.hh>
#include <vcsn/core/tuple-automaton.hh>
#include <vcsn/core/transition-map.hh>
#include <vcsn/ctx/context.hh>
#include <vcsn/ctx/traits.hh>
#include <vcsn/dyn/automaton.hh>
#include <vcsn/dyn/ratexp.hh>
#include <vcsn/misc/vector.hh>
#include <vcsn/misc/zip-maps.hh>
Go to the source code of this file.
Classes | |
class | vcsn::detail::product_automaton_impl< Aut, Auts > |
Build the (accessible part of the) product. More... | |
Namespaces | |
vcsn | |
vcsn::detail | |
vcsn::dyn | |
FIXME: duplicate code with determinize. | |
vcsn::dyn::detail | |
Typedefs | |
template<typename Aut , typename... Auts> | |
using | vcsn::product_automaton = std::shared_ptr< detail::product_automaton_impl< Aut, Auts...>> |
A product automaton as a shared pointer. More... | |
Functions | |
template<typename... Auts> | |
auto | vcsn::join_automata (Auts &&...auts) -> decltype(make_mutable_automaton(join(auts->context()...))) |
Join between automata. More... | |
template<typename... Auts> | |
auto | vcsn::meet_automata (Auts &&...auts) -> decltype(make_mutable_automaton(meet(auts->context()...))) |
Meet between automata. More... | |
template<typename Aut , typename... Auts> | |
auto | vcsn::make_product_automaton (Aut aut, const Auts &...auts) -> product_automaton< Aut, Auts...> |
template<typename... Auts> | |
auto | vcsn::product (const Auts &...as) -> product_automaton< decltype(meet_automata(as...)), Auts...> |
Build the (accessible part of the) product. More... | |
template<std::size_t I, typename Aut > | |
std::enable_if< labelset_t_of < Aut >::has_one()&&I!=0, Aut > ::type | vcsn::dyn::detail::do_insplit (Aut &aut) |
template<std::size_t I, typename Aut > | |
std::enable_if<!labelset_t_of < Aut >::has_one()||I==0, Aut & > ::type | vcsn::dyn::detail::do_insplit (Aut &aut) |
template<typename... Auts, size_t... I> | |
automaton | vcsn::dyn::detail::product_ (const std::vector< automaton > &as, vcsn::detail::index_sequence< I...>) |
template<typename Lhs , typename Rhs > | |
automaton | vcsn::dyn::detail::product (const automaton &lhs, const automaton &rhs) |
Binary bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (product,(const automaton &, const automaton &) -> automaton) | |
template<typename... Auts> | |
automaton | vcsn::dyn::detail::product_vector (const std::vector< automaton > &as) |
Variadic bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (product_vector,(const std::vector< automaton > &) -> automaton) | |
template<typename... Auts> | |
auto | vcsn::shuffle (const Auts &...as) -> product_automaton< decltype(join_automata(as...)), Auts...> |
The (accessible part of the) shuffle product. More... | |
template<typename Lhs , typename Rhs > | |
automaton | vcsn::dyn::detail::shuffle (const automaton &lhs, const automaton &rhs) |
Binary bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (shuffle,(const automaton &, const automaton &) -> automaton) | |
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_vector (const std::vector< automaton > &as) |
Variadic bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (shuffle_vector,(const std::vector< automaton > &) -> automaton) | |
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 ratexps. More... | |
template<typename RatExpSetLhs , typename RatExpSetRhs > | |
ratexp | vcsn::dyn::detail::shuffle_ratexp (const ratexp &lhs, const ratexp &rhs) |
Bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (shuffle_ratexp,(const ratexp &, const ratexp &) -> ratexp) | |
template<typename... Auts> | |
auto | vcsn::infiltration (const Auts &...as) -> product_automaton< decltype(join_automata(as...)), Auts...> |
The (accessible part of the) infiltration product. More... | |
template<typename Lhs , typename Rhs > | |
automaton | vcsn::dyn::detail::infiltration (const automaton &lhs, const automaton &rhs) |
Binary bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (infiltration,(const automaton &, const automaton &) -> automaton) | |
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_vector (const std::vector< automaton > &as) |
Variadic bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (infiltration_vector,(const std::vector< automaton > &) -> automaton) | |
template<typename Aut > | |
auto | vcsn::power (const Aut &aut, unsigned n) -> typename Aut::element_type::automaton_nocv_t |
template<typename Aut , typename Unsigned > | |
automaton | vcsn::dyn::detail::power (const automaton &aut, unsigned n) |
Bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (power,(const automaton &, unsigned) -> automaton) | |
template<typename RatExpSet > | |
RatExpSet::value_t | vcsn::conjunction (const RatExpSet &rs, const typename RatExpSet::value_t &lhs, const typename RatExpSet::value_t &rhs) |
Intersection/Hadamard product of ratexps. More... | |
template<typename RatExpSetLhs , typename RatExpSetRhs > | |
ratexp | vcsn::dyn::detail::conjunction_ratexp (const ratexp &lhs, const ratexp &rhs) |
Bridge. More... | |
vcsn::dyn::detail::REGISTER_DECLARE (conjunction_ratexp,(const ratexp &, const ratexp &) -> ratexp) | |