Vcsn  2.1
Be Rational
conjunction.hh File Reference
#include <iostream>
#include <map>
#include <utility>
#include <vcsn/algos/insplit.hh>
#include <vcsn/algos/strip.hh>
#include <vcsn/core/join-automata.hh>
#include <vcsn/core/transition-map.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/misc/tuple.hh>
#include <vcsn/misc/zip-maps.hh>
Include dependency graph for conjunction.hh:
This graph shows which files directly or indirectly include this file:

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...
 
struct  vcsn::detail::product_automaton_impl< Aut, Auts >::label_equal_p
 
struct  vcsn::detail::product_automaton_impl< Aut, Auts >::not_to_post_p
 

Namespaces

 vcsn
 
 vcsn::detail
 
 vcsn::dyn
 
 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 Aut , typename... Auts>
auto vcsn::make_product_automaton (Aut aut, const Auts &...auts) -> product_automaton< Aut, Auts...>
 
template<typename... Auts>
auto vcsn::conjunction (const Auts &...as) -> tuple_automaton< decltype(meet_automata(as...)), Auts...>
 Build the (accessible part of the) conjunction. More...
 
template<typename... Auts>
auto vcsn::conjunction_lazy (const Auts &...as) -> product_automaton< decltype(meet_automata(as...)), Auts...>
 Build the (accessible part of the) conjunction. More...
 
template<std::size_t I, typename Aut >
vcsn::enable_if_t< labelset_t_of< Aut >::has_one()&&I!=0, Aut > vcsn::dyn::detail::do_insplit (Aut &aut)
 
template<std::size_t I, typename Aut >
vcsn::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<typename... 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<typename A1 , typename 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<typename A1 , typename A2 , typename A3 , typename... 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<typename Aut >
auto vcsn::conjunction (const Aut &aut, unsigned n) -> fresh_automaton_t_of< Aut >
 
template<typename Aut , typename Unsigned >
automaton vcsn::dyn::detail::conjunction_repeated (const automaton &aut, unsigned n)
 Bridge (conjunction). More...
 
template<typename ExpSet >
ExpSet::value_t vcsn::conjunction (const ExpSet &rs, const typename ExpSet::value_t &lhs, const typename ExpSet::value_t &rhs)
 Intersection/Hadamard product of expressions. More...
 
template<typename ExpSetLhs , typename ExpSetRhs >
expression vcsn::dyn::detail::conjunction_expression (const expression &lhs, const expression &rhs)
 Bridge (conjunction). More...