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