fmp_transducer_functions.thh

00001 //                                                             -*- C++ -*-
00002 // fmp_transducer_functions.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 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 
00024 #include <vaucanson/algebra/concept/alphabets_base.hh>
00025 #include <vaucanson/tools/usual_macros.hh>
00026 
00027 #ifndef VCSN_WITHOUT_ALGORITHM_INCLUDES
00028 # include <vaucanson/algorithms/closure.hh>
00029 # include <vaucanson/algorithms/normalized_composition.hh>
00030 # include <vaucanson/algorithms/sub_normalize.hh>
00031 # include <vaucanson/algorithms/evaluation_fmp.hh>
00032 # include <vaucanson/algorithms/projections_fmp.hh>
00033 # include <vaucanson/algorithms/outsplitting.hh>
00034 # include <vaucanson/algorithms/transpose.hh>
00035 # include <vaucanson/algorithms/fmp_to_realtime.hh>
00036 #endif // ! VCSN_WITHOUT_ALGORITHM_INCLUDES
00037 
00038 namespace vcsn
00039 {
00040 
00041   namespace VCSN_CONTEXT_NAMESPACE
00042   {
00043 
00044     template <class T1, class T2>
00045     automaton_t make_automaton(const T1& first_alphabet,
00046                                const T2& second_alphabet);
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 
00054     template <class T1, class T2>
00055     monoid_elt_t make_couple(const T1& first_alphabet,
00056                              const T2& second_alphabet,
00057                              const std::string& first_exp = "",
00058                              const std::string& second_exp = "");
00059 
00060     template <class FirstIterator, class SecondIterator>
00061     monoid_elt_t make_couple(const FirstIterator first_begin,
00062                              const FirstIterator first_end,
00063                              const SecondIterator second_begin,
00064                              const SecondIterator second_end,
00065                              const std::string& first_exp,
00066                              const std::string& second_exp);
00067 
00068     template <typename TransStruct,
00069               typename TransImpl,
00070               typename ArgStruct,
00071               typename ArgImpl>
00072     AUTOMATON_CONTEXT::rat_exp_t
00073     evaluation(const Element<TransStruct, TransImpl>& t,
00074                const Element<ArgStruct, ArgImpl>& input);
00075 
00076   } // End of namespace VCSN_CONTEXT_NAMESPACE.
00077 
00078 } // End of namespace vcsn.
00079 
00080 
00081 #ifndef VCSN_USE_INTERFACE_ONLY
00082 # include <vaucanson/contexts/fmp_transducer_functions.thxx>
00083 #endif // ! VCSN_USE_INTERFACE_ONLY

Generated on Fri Jul 28 12:18:32 2006 for Vaucanson by  doxygen 1.4.6