00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_ALGORITHMS_CUT_UP_HH
00018 # define VCSN_ALGORITHMS_CUT_UP_HH
00019 
00028 
00029 
00030 
00031 
00032 
00033 # include <vaucanson/automata/concept/copy.hh>
00034 # include <vaucanson/algebra/implementation/series/rat/nodes.hh>
00035 # include <vaucanson/algebra/implementation/series/generalized.hh>
00036 # include <vaucanson/algorithms/standard_of.hh>
00037 
00038 namespace vcsn
00039 {
00040 
00048   template <typename A, typename AI>
00049   bool is_cut_up(const Element<A, AI>& a);
00050 
00051 
00065   template <typename A, typename AI>
00066   Element<A, AI>
00067   cut_up(const Element<A, AI>& a);
00068 
00069 
00083   template <typename A, typename AI>
00084   void
00085   cut_up(const Element<A, AI>& a, Element<A, AI>& res);
00086 
00087 
00100   template <typename A, typename AI>
00101   void
00102   cut_up_here(Element<A, AI>& a);
00103 
00104 
00105 } 
00106 
00107 
00108 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00109 #  include <vaucanson/algorithms/cut_up.hxx>
00110 # endif // VCSN_USE_INTERFACE_ONLY
00111 
00112 
00113 #endif // ! VCSN_ALGORITHMS_CUT_UP_HH