00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGORITHMS_NORMALIZED_COMPOSITION_HH
00018 # define VCSN_ALGORITHMS_NORMALIZED_COMPOSITION_HH
00019 
00020 # include <vaucanson/automata/concept/automata_base.hh>
00021 
00036 namespace vcsn {
00037 
00050   template <typename S, typename T>
00051   void
00052   compose(const Element<S, T>& lhs,
00053           const Element<S, T>& rhs,
00054           Element<S, T>& ret);
00055 
00056 
00057 
00066   template <typename S, typename T>
00067   Element<S, T>
00068   compose(const Element<S, T>& lhs,
00069           const Element<S, T>& rhs);
00070 
00071 
00081   template <typename S, typename T>
00082   void
00083   u_compose(const Element<S, T>& lhs,
00084             const Element<S, T>& rhs,
00085             Element<S, T>& ret);
00086 
00095   template <typename S, typename T>
00096   Element<S, T>
00097   u_compose(const Element<S, T>& lhs,
00098             const Element<S, T>& rhs);
00099 
00102 } 
00103 
00104 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00105 #  include <vaucanson/algorithms/normalized_composition.hxx>
00106 # endif // VCSN_USE_INTERFACE_ONLY
00107 
00108 
00109 #endif // ! VCSN_ALGORITHMS_NORMALIZED_COMPOSITION_HH