Vcsn  2.1
Be Rational
minimize-brzozowski.hh
Go to the documentation of this file.
1 #pragma once
2 
4 #include <vcsn/algos/strip.hh>
6 
7 namespace vcsn
8 {
9 
10  /*-------------------------------------------.
11  | minimization with Brzozowski's algorithm. |
12  `-------------------------------------------*/
13 
14  template <typename Aut>
15  inline
16  auto
17  minimize_brzozowski(const Aut& a)
18  -> decltype(determinize(codeterminize(a)))
19  {
20  return determinize(codeterminize(a));
21  }
22 
23  template <typename Aut>
24  inline
25  auto
26  cominimize_brzozowski(const Aut& a)
27  -> decltype(transpose(minimize_brzozowski(transpose(a))))
28  {
30  }
31 
32 } // namespace vcsn
auto minimize_brzozowski(const Aut &a) -> decltype(determinize(codeterminize(a)))
Aut transpose(const transpose_automaton< Aut > &aut)
Definition: transpose.hh:235
auto cominimize_brzozowski(const Aut &a) -> decltype(transpose(minimize_brzozowski(transpose(a))))
auto codeterminize(const Aut &a) -> decltype(transpose(determinize(transpose(a))))
Definition: determinize.hh:263
auto determinize(const Aut &a) -> determinized_automaton< Aut >
Definition: determinize.hh:251