00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VCSN_ALGORITHMS_REDUCE_HH
00019 # define VCSN_ALGORITHMS_REDUCE_HH
00020
00021 # include <vaucanson/design_pattern/design_pattern.hh>
00022 # include <vaucanson/misc/direction.hh>
00023
00034
00035
00036
00037
00038 namespace vcsn {
00039
00060 template<typename A, typename AI>
00061 Element<A, AI>
00062 reduce(const Element<A, AI>& a, misc::direction_type dir = misc::right_left);
00063
00084 template<typename A, typename AI>
00085 void
00086 reduce_here(Element<A, AI>& a, misc::direction_type dir = misc::right_left);
00087
00088 }
00089
00090 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00091 # include <vaucanson/algorithms/reduce.hxx>
00092 # endif // VCSN_USE_INTERFACE_ONLY
00093
00094 #endif // !VCSN_ALGORITHMS_REDUCE_HH //