17 #ifndef VCSN_ALGORITHMS_EVALUATION_FMP_HXX
18 # define VCSN_ALGORITHMS_EVALUATION_FMP_HXX
24 # include <vaucanson/algebra/concept/freemonoid_product.hh>
28 template <
typename S1,
typename S2,
typename S3,
29 typename M1,
typename M2,
typename M3,
typename M4,
30 typename trans_t,
typename auto_t,
typename res_t>
32 do_evaluation_fmp(
const AutomataBase<S1>&,
33 const algebra::FreeMonoidProduct<M1, M2>&,
34 const AutomataBase<S2>&,
const algebra::FreeMonoid<M3>&,
35 const AutomataBase<S3>&,
const algebra::FreeMonoid<M4>&,
36 const trans_t& trans,
const auto_t& aut, res_t& res)
40 trans_t id_aut(trans.structure());
42 trans_t res_composition =
compose(id_aut, trans);
43 image(res_composition, res);
47 template <
typename ST,
typename TT>
50 const typename input_projection_helper<ST, TT>::ret& aut,
51 typename output_projection_helper<ST, TT>::ret& res)
53 BENCH_TASK_SCOPED(
"evaluation_fmp");
55 aut.structure(), aut.structure().series().monoid(),
56 res.structure(), res.structure().series().monoid(),
61 #endif // ! VCSN_ALGORITHMS_EVALUATION_FMP_HXX