00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGORITHMS_NORMALIZED_HH
00018 # define VCSN_ALGORITHMS_NORMALIZED_HH
00019 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 
00047 
00048 
00049 
00050 
00051 
00052 # include <vaucanson/design_pattern/design_pattern.hh>
00053 
00054 namespace vcsn {
00055 
00057 
00069   template <typename A, typename AI>
00070   Element<A, AI>
00071   normalize(const Element<A, AI>& a);
00072 
00084   template<typename A, typename AI>
00085   void
00086   normalize_here(Element<A, AI>& a);
00087 
00099   template<typename A, typename AI>
00100   bool
00101   is_normalized(const Element<A, AI>& a);
00102 
00116   template<typename A, typename AI1, typename AI2>
00117   void
00118   union_of_normalized_here(Element<A, AI1>& lhs,
00119                            const Element<A, AI2>& rhs);
00120 
00133   template<typename A, typename AI1, typename AI2>
00134   Element<A, AI1>
00135   union_of_normalized(const Element<A, AI1>& lhs,
00136                       const Element<A, AI2>& rhs);
00137 
00151   template<typename A, typename AI1, typename AI2>
00152   void
00153   concatenate_of_normalized_here(Element<A, AI1>& lhs,
00154                                  const Element<A, AI2>& rhs);
00155 
00168   template<typename A, typename AI1, typename AI2>
00169   Element<A, AI1>
00170   concatenate_of_normalized(const Element<A, AI1>& lhs,
00171                             const Element<A, AI2>& rhs);
00172 
00185   template<typename A, typename AI>
00186   void
00187   star_of_normalized_here(Element<A, AI>& a);
00188 
00201   template<typename A, typename AI>
00202   Element<A, AI>
00203   star_of_normalized(const Element<A, AI>& a);
00204 
00207 } 
00208 
00209 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00210 #  include <vaucanson/algorithms/normalized.hxx>
00211 # endif // VCSN_USE_INTERFACE_ONLY
00212 
00213 #endif // ! VCSN_ALGORITHMS_NORMALIZED_HH