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
00032
00033 # include <map>
00034
00035 # include <vaucanson/automata/concept/transducer.hh>
00036 # include <vaucanson/automata/concept/automata.hh>
00037 # include <vaucanson/algebra/concept/freemonoid_product.hh>
00038
00039 # include <vaucanson/algebra/implementation/monoid/free_monoid.hh>
00040 # include <vaucanson/algebra/implementation/series/series.hh>
00041
00042 # include <vaucanson/algorithms/projection.hh>
00043
00044 namespace vcsn
00045 {
00046
00047 template <typename S, typename T>
00048 void
00049 image(const Element<S, T>& aut, typename output_projection_helper<S, T>::ret& res);
00050
00051 template <class S, class T>
00052 typename output_projection_helper<S, T>::ret
00053 image(const Element<S, T>&,
00054 std::map<typename T::hstate_t, typename T::hstate_t>& m);
00055
00056
00058 template <class S, class T>
00059 typename output_projection_helper<S, T>::ret
00060 image(const Element<S, T>&);
00061
00062 }
00063
00064
00065 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00066 # include <vaucanson/algorithms/image.hxx>
00067 # endif // !VCSN_USE_INTERFACE_ONLY
00068
00069 #endif // !VCSN_ALGORITHMS_IMAGE_HH