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