00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_SUB_NORMALIZE_HH
00018 # define VCSN_ALGORITHMS_SUB_NORMALIZE_HH
00019
00028 # include <vaucanson/algebra/concept/freemonoid_product.hh>
00029 # include <vaucanson/automata/concept/copy.hh>
00030 # include <vaucanson/algorithms/cut_up.hh>
00031 # include <vector>
00032
00033 namespace vcsn
00034 {
00042 template <class S, class T>
00043 Element<S, T>
00044 sub_normalize(const Element<S, T>& a);
00045
00053 template <class S, class T1, class T2>
00054 void
00055 sub_normalize(const Element<S, T1>& a, Element<S, T2>& res);
00056
00064 template <class S, class T>
00065 bool is_sub_normalized(const Element<S, T>& a);
00066
00067 }
00068
00069 # ifndef VCSN_USE_INTERFACE_ONLY
00070 # include <vaucanson/algorithms/sub_normalize.hxx>
00071 # endif // VCSN_USE_INTERFACE_ONLY
00072
00073 #endif // ! VCSN_ALGORITHMS_SUB_NORMALIZE_HH