Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
identities.hh
Go to the documentation of this file.
1 #ifndef VCSN_ALGOS_IDENTITIES_HH
2 # define VCSN_ALGOS_IDENTITIES_HH
3 
4 # include <map>
5 
6 # include <vcsn/algos/product.hh> // join_automata
7 # include <vcsn/ctx/traits.hh>
8 # include <vcsn/dyn/automaton.hh> // dyn::make_automaton
9 # include <vcsn/dyn/ratexp.hh> // dyn::make_ratexp
10 # include <vcsn/misc/raise.hh> // require
11 
12 namespace vcsn
13 {
14 
15  /*---------------------.
16  | identities(ratexp). |
17  `---------------------*/
18 
19  namespace dyn
20  {
21  namespace detail
22  {
24  template <typename RatExpSet>
26  identities(const ratexp& exp)
27  {
28  const auto& e = exp->as<RatExpSet>();
29  auto rs = e.ratexpset();
30  return rs.identities();
31  }
32 
34  (const ratexp&) -> rat::identities);
35  }
36 
37  }
38 }
39 
40 #endif // !VCSN_ALGOS_IDENTITIES_HH
REGISTER_DECLARE(accessible,(const automaton &) -> automaton)
rat::identities identities(const ratexp &exp)
Bridge.
Definition: identities.hh:26
std::shared_ptr< detail::ratexp_base > ratexp
Definition: fwd.hh:64
identities
A ratexpset can implement several different sets of identities on expressions.
Definition: identities.hh:17