17 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_TRANSPOSE_VIEW_HXX 
   18 # define VCSN_AUTOMATA_IMPLEMENTATION_TRANSPOSE_VIEW_HXX 
   20 # include <vaucanson/automata/implementation/transpose_view.hh> 
   24 #define AutoType(Type)                          \ 
   25   typename Element<S, TransposeView<T> >::Type 
   28   TransposeView<T>::TransposeView()
 
   32   TransposeView<T>::TransposeView(
const T& 
object):
 
   33     IdentityView<T>(object)
 
   37   TransposeView<T>::TransposeView(T& 
object):
 
   38     IdentityView<T>(object)
 
   42   TransposeView<T>::TransposeView(
const TransposeView& t):
 
   46   template <
class S, 
class T>
 
   47   Element<S, TransposeView<T> >
 
   54   template <
class S, 
class T>
 
   55   const Element<S, TransposeView<T> >
 
   62   template <
class S, 
class T>
 
   63   const typename automaton_traits<T>::tag_t&
 
   64   op_get_tag(
const AutomataBase<S>& s, 
const TransposeView<T>& v)
 
   69   template <
class S, 
class T>
 
   70   typename automaton_traits<T>::tag_t&
 
   71   op_get_tag(
const AutomataBase<S>& s, TransposeView<T>& v)
 
   76   template <
class S, 
class T>
 
   77   const typename automaton_traits<T>::geometry_t&
 
   78   op_geometry(
const AutomataBase<S>& s, 
const TransposeView<T>& v)
 
   80     return op_geometry(s, v.object());
 
   83   template <
class S, 
class T>
 
   84   typename automaton_traits<T>::geometry_t&
 
   85   op_geometry(
const AutomataBase<S>& s, TransposeView<T>& v)
 
   87     return op_geometry(s, v.object());
 
   90   template <
class S, 
class T>
 
   92   op_exists(
const AutomataBase<S>& s, 
const TransposeView<T>& v)
 
   97   template <
class S, 
class T>
 
   98   typename automaton_traits<T>::states_t
 
   99   op_states(
const AutomataBase<S>& s, 
const TransposeView<T>& v)
 
  104   template <
class S, 
class T>
 
  105   typename automaton_traits<T>::transitions_t
 
  106   op_transitions(
const AutomataBase<S>& s, 
const TransposeView<T>& v)
 
  111   template <
class S, 
class T>
 
  112   typename automaton_traits<T>::hstate_t
 
  113   op_add_state(
const AutomataBase<S>& s, TransposeView<T>& v)
 
  118   template <
class S, 
class T>
 
  119   typename automaton_traits<T>::hstate_t
 
  125   template <
class S, 
class T>
 
  126   typename automaton_traits<T>::htransition_t
 
  128                     const typename automaton_traits<T>::hstate_t& from,
 
  129                     const typename automaton_traits<T>::hstate_t& to,
 
  130                     const typename Element<S, T>::label_t& label)
 
  135   template <
class S, 
class T>
 
  136   typename automaton_traits<T>::htransition_t
 
  139                            const typename automaton_traits<T>::hstate_t& from,
 
  140                            const typename automaton_traits<T>::hstate_t& to,
 
  141                            const typename Element<S, T>::series_set_elt_t& se)
 
  146   template <
class S, 
class T>
 
  147   typename automaton_traits<T>::htransition_t
 
  149                      const typename automaton_traits<T>::hstate_t& from,
 
  150                      const typename automaton_traits<T>::hstate_t& to)
 
  155   template <
class S, 
class T>
 
  156   typename automaton_traits<T>::htransition_t
 
  158                            const typename automaton_traits<T>::hstate_t& from,
 
  159                            const typename automaton_traits<T>::hstate_t& to,
 
  160                            const typename Element<S, T>::letter_t& e)
 
  165   template <
class S, 
class T>
 
  167   op_update(
const AutomataBase<S>& s, TransposeView<T>& v,
 
  168             const typename automaton_traits<T>::htransition_t& e,
 
  169             const AutoType(label_t)& l)
 
  174   template <
class S, 
class T>
 
  176   op_del_state(
const AutomataBase<S>& s, TransposeView<T>& v,
 
  177                const typename automaton_traits<T>::hstate_t& st)
 
  182   template <
class S, 
class T>
 
  185                     const typename automaton_traits<T>::htransition_t& e)
 
  190   template <
class S, 
class T>
 
  193                const TransposeView<T>& v,
 
  194                const typename automaton_traits<T>::hstate_t& st)
 
  199   template <
class S, 
class T>
 
  202                     const TransposeView<T>& v,
 
  203                     const typename automaton_traits<T>::htransition_t& e)
 
  208   template <
class S, 
class T>
 
  209   typename Element<S, T>::label_t
 
  211               const TransposeView<T>& v,
 
  212               const typename automaton_traits<T>::htransition_t& e)
 
  217   template <
class S, 
class T>
 
  218   const typename Element<S, T>::series_set_elt_t
 
  220                const TransposeView<T>& v,
 
  221                const typename automaton_traits<T>::htransition_t& e)
 
  223     typename Element<S, T>::series_set_elt_t r =
 
  229   template <
class S, 
class T>
 
  230   typename Element<S, T>::series_set_elt_value_t
 
  232                      const TransposeView<T>& v,
 
  233                      const typename automaton_traits<T>::htransition_t& e)
 
  238   template <
class S, 
class T>
 
  239   typename Element<S, T>::monoid_elt_t
 
  241              const TransposeView<T>& v,
 
  242              const typename automaton_traits<T>::htransition_t& e)
 
  247   template <
class S, 
class T>
 
  248   typename Element<S, T>::monoid_elt_value_t
 
  250                    const TransposeView<T>& v,
 
  251                    const typename automaton_traits<T>::htransition_t& e)
 
  256   template <
class S, 
class T>
 
  257   typename Element<S, T>::letter_t
 
  259                const TransposeView<T>& v,
 
  260                const typename automaton_traits<T>::htransition_t& e)
 
  265   template <
class S, 
class T>
 
  268                     const TransposeView<T>& v,
 
  269                     const typename automaton_traits<T>::htransition_t& e)
 
  274   template <
class S, 
class T>
 
  275   typename automaton_traits<TransposeView<T> >::initial_support_t
 
  281   template <
class S, 
class T>
 
  282   typename automaton_traits<TransposeView<T> >::final_support_t
 
  288   template <
class S, 
class T>
 
  291                  const typename automaton_traits<T>::hstate_t& state,
 
  292                  const AutoType(series_set_elt_t)& s)
 
  297   template <
class S, 
class T>
 
  298   AutoType(series_set_elt_t)
 
  301                  const typename automaton_traits<T>::hstate_t& state)
 
  303     AutoType(series_set_elt_t) r = 
op_get_final(s, v.object(), state);
 
  308   template <
class S, 
class T>
 
  311                const typename automaton_traits<T>::hstate_t& state,
 
  317   template <
class S, 
class T>
 
  318   typename Element<S, T>::series_set_elt_t
 
  321                const typename automaton_traits<T>::hstate_t& state)
 
  329   template <
class S, 
class T>
 
  336   template <
class S, 
class T>
 
  343   template <
class S, 
class T>
 
  344   typename automaton_traits<T>::hstate_t
 
  347             const typename automaton_traits<T>::htransition_t& e)
 
  352   template <
class S, 
class T>
 
  353   typename automaton_traits<T>::hstate_t
 
  356             const typename automaton_traits<T>::htransition_t& e)
 
  365 #endif // ! VCSN_AUTOMATA_IMPLEMENTATION_TRANSPOSE_VIEW_HXX