17 #ifndef AWALI_ALGOS_LIFT_TDC_HH 
   18 # define AWALI_ALGOS_LIFT_TDC_HH 
   29 namespace awali { 
namespace sttc {
 
   35     template <
typename Tdc>
 
   39       using o_labelset_t = 
typename i_labelset_t::template valueset_t<0>;
 
   58         const o_labelset_t& o_labelset{std::get<0>(
tdc_->context().labelset()->sets())};
 
   60         exp_context_t exp_context{std::get<1>(
tdc_->context().labelset()->sets()), *(
tdc_->context().weightset())};
 
   66         for (
auto s: 
tdc_->states())
 
   69         for (
auto t: 
tdc_->all_transitions())
 
   72                              o_weightset.lmul(
tdc_->weight_of(t), o_weightset.one()));
 
   73           else if (
tdc_->dst_of(t) == 
tdc_->post())
 
   75                            o_weightset.lmul(
tdc_->weight_of(t), o_weightset.one()));
 
   76           else if (exp_labelset.is_one(std::get<1>(
tdc_->label_of(t))))
 
   80                  std::get<0>(
tdc_->label_of(t)),
 
   81                  o_weightset.lmul(
tdc_->weight_of(t), o_weightset.one()));
 
   86                std::get<0>(
tdc_->label_of(t)),
 
   87                o_weightset.lmul(
tdc_->weight_of(t), o_weightset.atom(std::get<1>(
tdc_->label_of(t)))));
 
   92         auto history = std::make_shared<single_history<Tdc>>(
tdc_);
 
   93         res->set_history(history);
 
   95             history->add_state(p.second, p.first);
 
  105   template <
typename Tdc>
 
carries the algebraic settings of automata
Definition: context.hh:40
 
@ series
Trivial identities plus series identities.
 
auto lift_tdc(const Tdc &tdc, bool keep_history=true) -> typename internal::tdc_lifter< Tdc >::automaton_t
Definition: lift_tdc.hh:108
 
typename internal::labelset_t_of_impl< internal::base_t< ValueSet > >::type labelset_t_of
Helper to retrieve the type of the labelset of a value set.
Definition: traits.hh:76
 
mutable_automaton< Context > make_mutable_automaton(const Context &ctx)
Definition: mutable_automaton.hh:915
 
std::shared_ptr< internal::mutable_automaton_impl< Context > > mutable_automaton
Definition: mutable_automaton.hh:45
 
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
 
Definition: lift_tdc.hh:36
 
labelset_t_of< Tdc > i_labelset_t
Definition: lift_tdc.hh:37
 
mutable_automaton< o_context_t > lift()
Definition: lift_tdc.hh:56
 
mutable_automaton< o_context_t > automaton_t
Definition: lift_tdc.hh:46
 
typename i_labelset_t::template valueset_t< 0 > o_labelset_t
Definition: lift_tdc.hh:39
 
automaton_t res
Definition: lift_tdc.hh:100
 
weightset_t_of< Tdc > i_weightset_t
Definition: lift_tdc.hh:38
 
std::map< state_t, state_t > in_out_map
Definition: lift_tdc.hh:101
 
void set_history()
Definition: lift_tdc.hh:91
 
typename i_labelset_t::template valueset_t< 1 > exp_labelset_t
Definition: lift_tdc.hh:40
 
const Tdc & tdc_
Definition: lift_tdc.hh:99
 
tdc_lifter(const Tdc &tdc)
Definition: lift_tdc.hh:48
 
Provide a variadic mul on top of a binary mul(), and one().
Definition: weightset.hh:38