1 #ifndef VCSN_CORE_RAT_TRANSPOSE_HH
2 # define VCSN_CORE_RAT_TRANSPOSE_HH
17 template <
class RatExpSet>
19 :
public RatExpSet::const_visitor
23 using ratexp_t =
typename ratexpset_t::value_t;
24 using super_t =
typename ratexpset_t::const_visitor;
35 return std::move(
res_);
60 res_ =
rs_.atom(
rs_.labelset()->transpose(e.value()));
73 for (
auto v: e.tail())
81 for (
auto v: e.tail())
123 res_ =
rs_.transposition(e.shared_from_this());
130 res_ =
rs_.transposition(e.shared_from_this());
136 rs_.weightset()->transpose(e.weight()));
141 res_ =
rs_.lmul(
rs_.weightset()->transpose(e.weight()),
152 template <
class RatExpSet>
153 typename RatExpSet::value_t
154 transpose(
const RatExpSet& rs,
const typename RatExpSet::value_t& v)
156 return rs.transpose(v);
161 #endif // !VCSN_CORE_RAT_TRANSPOSE_HH
VCSN_RAT_VISIT(rweight, e)
VCSN_RAT_VISIT(complement, e)
transposer(const ratexpset_t &rs)
typename ratexpset_t::const_visitor super_t
typename ratexpset_t::value_t ratexp_t
VCSN_RAT_VISIT(conjunction, e)
VCSN_RAT_VISIT(shuffle, e)
ratexp_t operator()(const ratexp_t &e)
VCSN_RAT_VISIT(lweight, e)
Aut transpose(const transpose_automaton< Aut > &aut)
ratexp_t transpose(const ratexp_t &e)
VCSN_RAT_VISIT(transposition, e)