Vaucanson 1.4
fmp_transducer_maker.thh
00001 //                                                             -*- C++ -*-
00002 // fmp_automaton_maker.thh: this file is part of the Vaucanson project.
00003 //
00004 // Vaucanson, a generic library for finite state machines.
00005 //
00006 // Copyright (C) 2005, 2006, 2008, 2010 The Vaucanson Group.
00007 //
00008 // This program is free software; you can redistribute it and/or
00009 // modify it under the terms of the GNU General Public License
00010 // as published by the Free Software Foundation; either version 2
00011 // of the License, or (at your option) any later version.
00012 //
00013 // The complete GNU General Public Licence Notice can be found as the
00014 // `COPYING' file in the root directory.
00015 //
00016 // The Vaucanson Group consists of people listed in the `AUTHORS' file.
00017 //
00018 
00019 /*
00020  * CPP guard should not be inserted here as
00021  * VCSN_CONTEXT_NAMESPACE could be changed.
00022  */
00023 
00024 namespace vcsn
00025 {
00026   namespace VCSN_GRAPH_IMPL
00027   {
00028     VCSN_CONTEXT_NAMESPACE
00029     {
00030       template <class T1, class T2>
00031       automaton_t make_automaton(const T1& first_alphabet,
00032                                  const T2& second_alphabet);
00033 
00034       template <class T1, class T2>
00035       automaton_t make_automaton(const T1& first_alphabet,
00036                                  const T2& second_alphabet,
00037                                  const monoid_rep_t& mrep,
00038                                  const first_monoid_rep_t& mrep1,
00039                                  const second_monoid_rep_t& mrep2,
00040                                  const series_rep_t& srep);
00041 
00042       template <class FirstInputIterator, class SecondInputIterator>
00043       automaton_t make_automaton(const FirstInputIterator first_begin,
00044                                  const FirstInputIterator first_end,
00045                                  const SecondInputIterator second_begin,
00046                                  const SecondInputIterator second_end);
00047 
00048       template <class FirstInputIterator, class SecondInputIterator>
00049       automaton_t make_automaton(const FirstInputIterator first_begin,
00050                                  const FirstInputIterator first_end,
00051                                  const SecondInputIterator second_begin,
00052                                  const SecondInputIterator second_end,
00053                                  const monoid_rep_t& mrep,
00054                                  const first_monoid_rep_t& mrep1,
00055                                  const second_monoid_rep_t& mrep2,
00056                                  const series_rep_t& srep);
00057 
00058       template <class T1, class T2>
00059       monoid_elt_t make_couple(const T1& first_alphabet,
00060                                const T2& second_alphabet,
00061                                const first_monoid_elt_value_t& first_exp,
00062                                const second_monoid_elt_value_t& second_exp);
00063 
00064       template <class FirstIterator, class SecondIterator>
00065       monoid_elt_t make_couple(const FirstIterator first_begin,
00066                                const FirstIterator first_end,
00067                                const SecondIterator second_begin,
00068                                const SecondIterator second_end,
00069                                const first_monoid_elt_value_t& first_exp,
00070                                const second_monoid_elt_value_t& second_exp);
00071 
00072       template <typename TransStruct,
00073                 typename TransImpl,
00074                 typename ArgStruct,
00075                 typename ArgImpl>
00076       AUTOMATON_CONTEXT::rat_exp_t
00077       evaluation(const Element<TransStruct, TransImpl>& t,
00078                  const Element<ArgStruct, ArgImpl>& input);
00079 
00080       rat_exp_t
00081       aut_to_exp(const automaton_t& a);
00082 
00083       template <class Chooser>
00084       rat_exp_t
00085       aut_to_exp(const automaton_t& a, const Chooser& c);
00086     } // End of VCSN_CONTEXT_NAMESPACE.
00087   } // End of VCSN_GRAPH_IMPL
00088 } // End of namespace vcsn.
00089 
00090 # include <vaucanson/contexts/fmp_transducer_maker.thxx>