17 #ifndef VCSN_ALGORITHMS_KRAT_EXP_LINEARIZE_HH
18 # define VCSN_ALGORITHMS_KRAT_EXP_LINEARIZE_HH
30 # include <vaucanson/design_pattern/design_pattern.hh>
31 # include <vaucanson/algebra/concept/series_base.hh>
32 # include <vaucanson/algebra/implementation/series/series.hh>
33 # include <vaucanson/algebra/implementation/alphabets/alphabets.hh>
34 # include <vaucanson/algebra/implementation/monoid/free_monoid.hh>
35 # include <vaucanson/algebra/implementation/letter/couple_letter.hh>
37 # include <vaucanson/algebra/implementation/series/krat.hh>
49 template <
typename S,
typename T>
53 typedef typename T::semiring_elt_value_t orig_semiring_elt_value_t;
54 typedef typename S::semiring_t orig_semiring_t;
55 typedef typename S::monoid_t orig_monoid_t;
56 typedef typename orig_monoid_t::letter_t orig_letter_t;
60 typedef std::pair<orig_letter_t, index_t> letter_t;
64 typedef std::set<letter_t> alphabet_impl_t;
73 typedef std::basic_string<letter_t, misc::char_traits<letter_t> >
83 template <
class Series,
class T>
91 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
92 # include <vaucanson/algorithms/krat_exp_linearize.hxx>
93 # endif // VCSN_USE_INTERFACE_ONLY
95 #endif // ! VCSN_ALGORITHMS_KRAT_EXP_LINEARIZE_HH