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
00031 # include<vaucanson/design_pattern/design_pattern.hh>
00032
00033 # include <vaucanson/automata/concept/handlers.hh>
00034
00035 namespace vcsn {
00036
00039
00040 template<typename SA, typename TA,
00041 typename ST, typename TT,
00042 typename SARET, typename TARET>
00043 void
00044 evaluation(const Element<SA, TA>&,
00045 const Element<ST, TT>&,
00046 Element<SARET, TARET>&);
00047
00048
00049
00050
00051 template<typename SE, typename TE,
00052 typename ST, typename TT,
00053 typename M>
00054 void
00055 partial_evaluation(const Element<SE, TE>& exp,
00056 const Element<ST, TT>& trans,
00057 M& state_exp_pair);
00058
00059 template<typename SA, typename TA,
00060 typename M>
00061 void
00062 partial_elimination(const Element<SA, TA>& a,
00063 M& state_exp_pair);
00064
00065 template<typename SA, typename TA,
00066 typename ST, typename TT,
00067 typename M>
00068 void
00069 partial_1(const Element<SA, TA>&,
00070 const Element<ST, TT>&, M&);
00071
00072 template<typename SA, typename TA,
00073 typename ST, typename TT,
00074 typename Exp>
00075 void
00076 partial_2(const Element<SA, TA>&,
00077 const Element<ST, TT>&,
00078 const hstate_t, Exp&);
00079
00080 template<typename SA, typename TA,
00081 typename ST, typename TT,
00082 typename M>
00083 void
00084 partial_3(const Element<SA, TA>&,
00085 const Element<ST, TT>&,
00086 const hstate_t, M&);
00087
00090 }
00091
00092 # ifndef VCSN_USE_INTERFACE_ONLY
00093 # include<vaucanson/algorithms/evaluation.hxx>
00094 # endif // VCSN_USE_INTERFACE_ONLY
00095
00096 #endif // ! VCSN_ALGORITHMS_EVALUATION_HH