00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 #ifndef VCSN_ALGORITHMS_IMAGE_HH
00019 # define VCSN_ALGORITHMS_IMAGE_HH
00020 
00031 # include <map>
00032 
00033 # include <vaucanson/automata/concept/transducer.hh>
00034 # include <vaucanson/automata/concept/automata.hh>
00035 # include <vaucanson/algebra/implementation/free_monoid/words.hh>
00036 # include <vaucanson/algebra/concept/freemonoid_product.hh>
00037 # include <vaucanson/algebra/implementation/series/series.hh>
00038 # include <vaucanson/algorithms/projection.hh>
00039 
00040 namespace vcsn
00041 {
00042 
00043   template <typename S, typename S2, typename T, typename T2>
00044   void
00045   image(const Element<S,T>& aut, Element<S2, T2>& res);
00046 
00047 
00048   template <class S, class T>
00049   typename output_projection_helper<S, T>::ret
00050   image(const Element<S, T>&,
00051         std::map<hstate_t, hstate_t>& m);
00052 
00053 
00055   template <class S, class T>
00056   typename output_projection_helper<S, T>::ret
00057   image(const Element<S, T>&);
00058 
00059 } 
00060 
00061 
00062 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00063 #  include <vaucanson/algorithms/image.hxx>
00064 # endif // !VCSN_USE_INTERFACE_ONLY
00065 
00066 #endif // !VCSN_ALGORITHMS_IMAGE_HH