Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
minimize-brzozowski.hh
Go to the documentation of this file.
1 #ifndef VCSN_ALGOS_MINIMIZE_BRZOZOWSKI_HH
2 # define VCSN_ALGOS_MINIMIZE_BRZOZOWSKI_HH
3 
5 # include <vcsn/algos/strip.hh>
6 # include <vcsn/algos/transpose.hh>
7 
8 namespace vcsn
9 {
10 
11  /*-------------------------------------------.
12  | minimization with Brzozowski's algorithm. |
13  `-------------------------------------------*/
14 
15  template <typename Aut>
16  inline
17  auto
18  minimize_brzozowski(const Aut& a)
19  -> decltype(determinize(codeterminize(a)))
20  {
21  return determinize(codeterminize(a));
22  }
23 
24  template <typename Aut>
25  inline
26  auto
27  cominimize_brzozowski(const Aut& a)
28  -> decltype(transpose(minimize_brzozowski(transpose(a))))
29  {
31  }
32 
33 } // namespace vcsn
34 
35 #endif // !VCSN_ALGOS_MINIMIZE_BRZOZOWSKI_HH
auto codeterminize(const Aut &a) -> decltype(transpose(determinize(transpose(a))))
Definition: determinize.hh:256
auto cominimize_brzozowski(const Aut &a) -> decltype(transpose(minimize_brzozowski(transpose(a))))
auto determinize(const Aut &a) -> determinized_automaton< Aut >
Definition: determinize.hh:244
auto minimize_brzozowski(const Aut &a) -> decltype(determinize(codeterminize(a)))
Aut transpose(const transpose_automaton< Aut > &aut)
Definition: transpose.hh:230