00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef VCSN_ALGORITHMS_EVALUATION_HH
00018 # define VCSN_ALGORITHMS_EVALUATION_HH
00019
00030 # include <vaucanson/design_pattern/design_pattern.hh>
00031
00032 # include <vaucanson/automata/concept/handlers.hh>
00033
00034 namespace vcsn {
00035
00038
00046 template<typename SA, typename TA,
00047 typename ST, typename TT,
00048 typename SARET, typename TARET>
00049 void
00050 evaluation(const Element<SA, TA>& a,
00051 const Element<ST, TT>& t,
00052 Element<SARET, TARET>& ret);
00053
00066 template<typename SA, typename TA,
00067 typename M>
00068 void
00069 partial_elimination(const Element<SA, TA>& a,
00070 M& state_exp_pair);
00071
00082 template<typename S1, typename T1,
00083 typename S2, typename T2,
00084 typename M>
00085 void
00086 partial_evaluation(const Element<S1, T1>& E,
00087 const Element<S2, T2>& S,
00088 const typename Element<S2, T2>::hstate_t& p,
00089 M& res);
00090
00093 }
00094
00095 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
00096 # include <vaucanson/algorithms/internal/evaluation.hxx>
00097 # endif // VCSN_USE_INTERFACE_ONLY
00098
00099 #endif // ! VCSN_ALGORITHMS_EVALUATION_HH