Vaucanson  1.4.1
domain.hh
Go to the documentation of this file.
1 // domain.hh: this file is part of the Vaucanson project.
2 //
3 // Vaucanson, a generic library for finite state machines.
4 //
5 // Copyright (C) 2006, 2008, 2011 The Vaucanson Group.
6 //
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License
9 // as published by the Free Software Foundation; either version 2
10 // of the License, or (at your option) any later version.
11 //
12 // The complete GNU General Public Licence Notice can be found as the
13 // `COPYING' file in the root directory.
14 //
15 // The Vaucanson Group consists of people listed in the `AUTHORS' file.
16 //
17 #ifndef VCSN_ALGORITHMS_DOMAIN_HH
18 # define VCSN_ALGORITHMS_DOMAIN_HH
19 
30 // INTERFACE: void domain(const Automaton& a1, InputProjection& a2, bool w) { return vcsn::domain(*a1, *a2); }
31 
32 # include <vaucanson/automata/concept/automata.hh>
33 # include <vaucanson/algebra/concept/freemonoid_product.hh>
34 
35 # include <vaucanson/algebra/implementation/monoid/free_monoid.hh>
36 # include <vaucanson/algebra/implementation/series/series.hh>
37 
38 
39 #include <vaucanson/automata/concept/transducer.hh>
40 
41 
42 namespace vcsn
43 {
44  /*-------.
45  | Domain |
46  `-------*/
47 
48 
49  template <typename S, typename S2, typename T, typename T2>
50  void
51  domain(const Element<S,T>& src, Element<S2, T2>& dst, bool weighted = true);
52 
53  // FMP version of domain.
54  template <typename src_t, typename dst_t>
55  void
56  do_fmp_domain(const src_t& src, dst_t& dst);
57 
58  // RW version of domain.
59  template <typename src_t, typename dst_t>
60  void
61  do_rw_domain(const src_t& src, dst_t& dst);
62 
63 } // End of namespace vcsn.
64 
65 
66 # if !defined VCSN_USE_INTERFACE_ONLY && !defined VCSN_USE_LIB
67 # include <vaucanson/algorithms/domain.hxx>
68 # endif // VCSN_USE_INTERFACE_ONLY
69 
70 
71 #endif // ! VCSN_ALGORITHMS_DOMAIN_HH