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<typename T::hstate_t, typename 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