Vaucanson  1.4.1
fmp_transducer_maker.thh
1 // -*- C++ -*-
2 // fmp_automaton_maker.thh: this file is part of the Vaucanson project.
3 //
4 // Vaucanson, a generic library for finite state machines.
5 //
6 // Copyright (C) 2005, 2006, 2008, 2010 The Vaucanson Group.
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 2
11 // of the License, or (at your option) any later version.
12 //
13 // The complete GNU General Public Licence Notice can be found as the
14 // `COPYING' file in the root directory.
15 //
16 // The Vaucanson Group consists of people listed in the `AUTHORS' file.
17 //
18 
19 /*
20  * CPP guard should not be inserted here as
21  * VCSN_CONTEXT_NAMESPACE could be changed.
22  */
23 
24 namespace vcsn
25 {
26  namespace VCSN_GRAPH_IMPL
27  {
28  VCSN_CONTEXT_NAMESPACE
29  {
30  template <class T1, class T2>
31  automaton_t make_automaton(const T1& first_alphabet,
32  const T2& second_alphabet);
33 
34  template <class T1, class T2>
35  automaton_t make_automaton(const T1& first_alphabet,
36  const T2& second_alphabet,
37  const monoid_rep_t& mrep,
38  const first_monoid_rep_t& mrep1,
39  const second_monoid_rep_t& mrep2,
40  const series_rep_t& srep);
41 
42  template <class FirstInputIterator, class SecondInputIterator>
43  automaton_t make_automaton(const FirstInputIterator first_begin,
44  const FirstInputIterator first_end,
45  const SecondInputIterator second_begin,
46  const SecondInputIterator second_end);
47 
48  template <class FirstInputIterator, class SecondInputIterator>
49  automaton_t make_automaton(const FirstInputIterator first_begin,
50  const FirstInputIterator first_end,
51  const SecondInputIterator second_begin,
52  const SecondInputIterator second_end,
53  const monoid_rep_t& mrep,
54  const first_monoid_rep_t& mrep1,
55  const second_monoid_rep_t& mrep2,
56  const series_rep_t& srep);
57 
58  template <class T1, class T2>
59  monoid_elt_t make_couple(const T1& first_alphabet,
60  const T2& second_alphabet,
61  const first_monoid_elt_value_t& first_exp,
62  const second_monoid_elt_value_t& second_exp);
63 
64  template <class FirstIterator, class SecondIterator>
65  monoid_elt_t make_couple(const FirstIterator first_begin,
66  const FirstIterator first_end,
67  const SecondIterator second_begin,
68  const SecondIterator second_end,
69  const first_monoid_elt_value_t& first_exp,
70  const second_monoid_elt_value_t& second_exp);
71 
72  template <typename TransStruct,
73  typename TransImpl,
74  typename ArgStruct,
75  typename ArgImpl>
76  AUTOMATON_CONTEXT::rat_exp_t
77  evaluation(const Element<TransStruct, TransImpl>& t,
78  const Element<ArgStruct, ArgImpl>& input);
79 
80  rat_exp_t
81  aut_to_exp(const automaton_t& a);
82 
83  template <class Chooser>
84  rat_exp_t
85  aut_to_exp(const automaton_t& a, const Chooser& c);
86  } // End of VCSN_CONTEXT_NAMESPACE.
87  } // End of VCSN_GRAPH_IMPL
88 } // End of namespace vcsn.
89 
90 # include <vaucanson/contexts/fmp_transducer_maker.thxx>