17 #ifndef AWALI_CORE_RAT_TRANSPOSE_HH
18 # define AWALI_CORE_RAT_TRANSPOSE_HH
22 namespace awali {
namespace sttc
33 template <
class RatExpSet>
35 :
public RatExpSet::const_visitor
54 return std::move(res_);
79 res_ = rs_.atom(rs_.labelset()->transpose(e.value()));
92 for (
auto v: e.tail())
93 res_ = rs_.conjunction(res_,
transpose(v));
100 for (
auto v: e.tail())
118 res_ = rs_.complement(
transpose(e.sub()));
151 res_ = rs_.transposition(e.shared_from_this());
157 rs_.weightset()->transpose(e.weight()));
162 res_ = rs_.lmul(rs_.weightset()->transpose(e.weight()),
173 template <
class RatExpSet>
174 typename RatExpSet::ratexp_t
175 transpose(
const RatExpSet& rs,
const typename RatExpSet::ratexp_t& v)
177 return rs.transpose(v);
Definition: transpose.hh:36
weightset_t_of< context_t > weightset_t
Definition: transpose.hh:40
ratexp_t transpose(const ratexp_t &e)
Definition: transpose.hh:58
context_t_of< ratexpset_t > context_t
Definition: transpose.hh:39
AWALI_RAT_VISIT(zero,)
Definition: transpose.hh:67
typename context_t::ratexp_t ratexp_t
Definition: transpose.hh:42
AWALI_RAT_VISIT(star, e)
Definition: transpose.hh:111
AWALI_RAT_VISIT(ldiv, e)
Definition: transpose.hh:147
AWALI_RAT_VISIT(transposition, e)
Definition: transpose.hh:121
AWALI_RAT_VISIT(sum, e)
Definition: transpose.hh:82
weight_t_of< context_t > weight_t
Definition: transpose.hh:41
AWALI_RAT_VISIT(atom, e)
Definition: transpose.hh:77
AWALI_RAT_VISIT(shuffle, e)
Definition: transpose.hh:96
RatExpSet ratexpset_t
Definition: transpose.hh:38
AWALI_RAT_VISIT(one,)
Definition: transpose.hh:72
AWALI_RAT_VISIT(complement, e)
Definition: transpose.hh:116
AWALI_RAT_VISIT(rweight, e)
Definition: transpose.hh:160
typename ratexpset_t::const_visitor super_type
Definition: transpose.hh:43
AWALI_RAT_VISIT(conjunction, e)
Definition: transpose.hh:89
transposer(const ratexpset_t &rs)
Definition: transpose.hh:45
AWALI_RAT_VISIT(prod, e)
Definition: transpose.hh:104
ratexp_t operator()(const ratexp_t &e)
Definition: transpose.hh:51
AWALI_RAT_VISIT(lweight, e)
Definition: transpose.hh:154
typename internal::weight_t_of_impl< internal::base_t< ValueSet > >::type weight_t_of
Helper to retrieve the type of the weights of a value set.
Definition: traits.hh:81
typename internal::context_t_of_impl< internal::base_t< ValueSet > >::type context_t_of
Helper to retrieve the type of the context of a value set.
Definition: traits.hh:66
AutOut transpose(Aut &aut, bool keep_history=true)
Definition: transpose.hh:79
typename internal::weightset_t_of_impl< internal::base_t< ValueSet > >::type weightset_t_of
Helper to retrieve the type of the weightset of a value set.
Definition: traits.hh:86
Main namespace of Awali.
Definition: ato.hh:22