00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGORITHMS_PROJECTION_HH
00018 # define VCSN_ALGORITHMS_PROJECTION_HH
00019 
00030 #include <vaucanson/automata/concept/transducer.hh>
00031 
00032 namespace vcsn {
00033 
00036   
00037   template <class ST, class TT,
00038             class SA, class TA>
00039   void
00040   output_projection(const Element<ST, TT>&,
00041                     Element<SA, TA>&);
00042 
00043   template <class S, class T>
00044   typename output_projection_helper<S, T>::ret
00045   output_projection(const Element<S, T>&,
00046                     std::map<hstate_t, hstate_t>& m);
00047 
00048   template <class S, class T>
00049   typename output_projection_helper<S, T>::ret
00050   output_projection(const Element<S, T>&);
00051 
00052   template <class S, class T>
00053   typename input_projection_helper<S, T>::ret
00054   input_projection(const Element<S, T>&);
00055 
00058 }
00059 
00060 # ifndef VCSN_USE_INTERFACE_ONLY
00061 #  include <vaucanson/algorithms/projection.hxx>
00062 # endif // VCSN_USE_INTERFACE_ONLY
00063 
00064 #endif // ! VCSN_ALGORITHMS_PROJECTION_HH