Vcsn  2.8
Be Rational
vcsn::detail::focus_automaton_impl< Tape, Aut > Class Template Reference

Read-write on an automaton, that hides all tapes but one. More...

#include <focus.hh>

Inheritance diagram for vcsn::detail::focus_automaton_impl< Tape, Aut >:
Collaboration diagram for vcsn::detail::focus_automaton_impl< Tape, Aut >:

Public Types

using automaton_t = Aut
 The type of the wrapped automaton. More...
 
using state_t = state_t_of< automaton_t >
 This automaton's state and transition types are those of the wrapped automaton. More...
 
using transition_t = transition_t_of< automaton_t >
 
using full_context_t = context_t_of< automaton_t >
 Underlying automaton context. More...
 
using full_labelset_t = typename full_context_t::labelset_t
 Underlying automaton labelset. More...
 
using full_label_t = typename full_labelset_t::value_t
 Underlying automaton label. More...
 
using context_t = project_context< Tape, full_context_t >
 Exposed context. More...
 
using labelset_t = typename context_t::labelset_t
 Exposed labelset. More...
 
using labelset_ptr = typename context_t::labelset_ptr
 
using label_t = typename labelset_t::value_t
 
using weightset_t = typename context_t::weightset_t
 Exposed weightset. More...
 
using weightset_ptr = typename context_t::weightset_ptr
 
using weight_t = typename weightset_t::value_t
 
template<typename = void>
using fresh_automaton_t = focus_automaton< Tape, fresh_automaton_t_of< automaton_t, full_context_t > >
 The type of automata to produce this kind of automata. More...
 
using hidden_indices_t = concat_sequence< make_index_range_t< 0, Tape >, make_index_range_t< Tape+1, std::tuple_size< full_label_t >::value > >
 Indices of the remaining tapes. More...
 
using res_labelset_t = typename hidden_label_type< Aut, hidden_indices_t >::type
 
using res_label_t = typename res_labelset_t::value_t
 
using super_t = automaton_decorator< automaton_t, context_t >
 
- Public Types inherited from vcsn::detail::automaton_decorator< Aut, project_context< Tape, context_t_of< Aut > > >
using automaton_t = Aut
 The type of automaton to wrap. More...
 
using context_t = project_context< Tape, context_t_of< Aut > >
 
using element_type = typename automaton_t::element_type
 The automaton type, without shared_ptr. More...
 
using fresh_automaton_t = typename element_type::template fresh_automaton_t< Ctx >
 The (shared pointer) type to use it we have to create an automaton of the same (underlying) type. More...
 
using kind_t = typename context_t::kind_t
 
using labelset_t = typename context_t::labelset_t
 
using labelset_ptr = typename context_t::labelset_ptr
 
using label_t = typename labelset_t::value_t
 
using weightset_t = typename context_t::weightset_t
 
using weightset_ptr = typename context_t::weightset_ptr
 
using weight_t = typename weightset_t::value_t
 
using state_t = state_t_of< automaton_t >
 
using transition_t = transition_t_of< automaton_t >
 

Public Member Functions

 focus_automaton_impl (const full_context_t &ctx)
 
 focus_automaton_impl (const automaton_t &aut)
 
std::ostream & print_set (std::ostream &o, format fmt={}) const
 
full_context_t full_context () const
 
context_t context () const
 
res_label_t hidden_label_of (transition_t t) const
 
res_label_t hidden_one () const
 
res_labelset_t res_labelset () const
 
labelset_ptr labelset () const
 Apparent labelset. More...
 
auto label_of (transition_t t) const -> label_t
 Apparent label of a transition. More...
 
auto out (state_t s) const -> decltype(out(aut_, s))
 
transition_t get_transition (state_t src, state_t dst, label_t l) const
 
bool has_transition (transition_t t) const
 Whether this transition is present in the automaton. More...
 
bool has_transition (state_t src, state_t dst, label_t l) const
 Apparent label of a transition. More...
 
void del_transition (state_t src, state_t dst, label_t l)
 Apparent label of a transition. More...
 
template<Automaton A>
transition_t new_transition_copy (state_t src, state_t dst, const A &aut, transition_t_of< A > t, bool transpose=false)
 Copy the full wrapped transition. More...
 
template<Automaton A>
transition_t add_transition_copy (state_t src, state_t dst, const A &aut, transition_t_of< A > t, bool transpose=false)
 Copy the full wrapped transition. More...
 
auto add_transition (state_t, state_t, label_t, weight_t) -> transition_t
 
auto add_transition (state_t, state_t, label_t) -> transition_t
 
auto new_transition (state_t, state_t, label_t, weight_t) -> transition_t
 
auto new_transition (state_t, state_t, label_t) -> transition_t
 
auto set_transition (state_t, state_t, label_t, weight_t) -> transition_t
 
- Public Member Functions inherited from vcsn::detail::automaton_decorator< Aut, project_context< Tape, context_t_of< Aut > > >
 automaton_decorator (automaton_t aut)
 
 automaton_decorator (const automaton_decorator &aut)
 
 automaton_decorator (const context_t &ctx)
 
 automaton_decorator (automaton_decorator &&aut)
 
automaton_decoratoroperator= (automaton_decorator &&that)
 
automaton_t strip ()
 The automaton we decorate. More...
 
auto all_in (Args &&... args) const -> decltype(aut_-> all_in(std::forward< Args >(args)...))
 
auto all_out (Args &&... args) const -> decltype(aut_-> all_out(std::forward< Args >(args)...))
 
auto all_states (Args &&... args) const -> decltype(aut_-> all_states(std::forward< Args >(args)...))
 
auto all_transitions (Args &&... args) const -> decltype(aut_-> all_transitions(std::forward< Args >(args)...))
 
auto context (Args &&... args) const -> decltype(aut_-> context(std::forward< Args >(args)...))
 
auto dst_of (Args &&... args) const -> decltype(aut_-> dst_of(std::forward< Args >(args)...))
 
auto get_final_weight (Args &&... args) const -> decltype(aut_-> get_ final _weight(std
 
auto get_initial_weight (Args &&... args) const -> decltype(aut_-> get_initial_weight(std::forward< Args >(args)...))
 
auto get_transition (Args &&... args) const -> decltype(aut_-> get_transition(std::forward< Args >(args)...))
 
auto has_state (Args &&... args) const -> decltype(aut_-> has_state(std::forward< Args >(args)...))
 
auto has_transition (Args &&... args) const -> decltype(aut_-> has_transition(std::forward< Args >(args)...))
 
auto is_final (Args &&... args) const -> decltype(aut_-> is_ final(std
 
auto is_initial (Args &&... args) const -> decltype(aut_-> is_initial(std::forward< Args >(args)...))
 
auto label_of (Args &&... args) const -> decltype(aut_-> label_of(std::forward< Args >(args)...))
 
auto labelset (Args &&... args) const -> decltype(aut_-> labelset(std::forward< Args >(args)...))
 
auto num_all_states (Args &&... args) const -> decltype(aut_-> num_all_states(std::forward< Args >(args)...))
 
auto num_finals (Args &&... args) const -> decltype(aut_-> num_ final s(std
 
auto num_initials (Args &&... args) const -> decltype(aut_-> num_initials(std::forward< Args >(args)...))
 
auto num_states (Args &&... args) const -> decltype(aut_-> num_states(std::forward< Args >(args)...))
 
auto num_transitions (Args &&... args) const -> decltype(aut_-> num_transitions(std::forward< Args >(args)...))
 
auto prepost_label (Args &&... args) const -> decltype(aut_-> prepost_label(std::forward< Args >(args)...))
 
auto print (Args &&... args) const -> decltype(aut_-> print(std::forward< Args >(args)...))
 
auto print_set (Args &&... args) const -> decltype(aut_-> print_set(std::forward< Args >(args)...))
 
auto print_state (Args &&... args) const -> decltype(aut_-> print_state(std::forward< Args >(args)...))
 
auto print_state_name (Args &&... args) const -> decltype(aut_-> print_state_name(std::forward< Args >(args)...))
 
auto src_of (Args &&... args) const -> decltype(aut_-> src_of(std::forward< Args >(args)...))
 
auto state_has_name (Args &&... args) const -> decltype(aut_-> state_has_name(std::forward< Args >(args)...))
 
auto is_lazy (Args &&... args) const -> decltype(aut_-> is_lazy(std::forward< Args >(args)...))
 
auto is_lazy_in (Args &&... args) const -> decltype(aut_-> is_lazy_in(std::forward< Args >(args)...))
 
auto states (Args &&... args) const -> decltype(aut_-> states(std::forward< Args >(args)...))
 
auto weight_of (Args &&... args) const -> decltype(aut_-> weight_of(std::forward< Args >(args)...))
 
auto weightset (Args &&... args) const -> decltype(aut_-> weightset(std::forward< Args >(args)...))
 
auto add_final (Args &&... args) -> decltype(aut_-> add_ final(std
 
auto add_initial (Args &&... args) -> decltype(aut_-> add_initial(std::forward< Args >(args)...))
 
auto add_transition (Args &&... args) -> decltype(aut_-> add_transition(std::forward< Args >(args)...))
 
auto add_transition_copy (Args &&... args) -> decltype(aut_-> add_transition_copy(std::forward< Args >(args)...))
 
auto add_weight (Args &&... args) -> decltype(aut_-> add_weight(std::forward< Args >(args)...))
 
auto del_state (Args &&... args) -> decltype(aut_-> del_state(std::forward< Args >(args)...))
 
auto del_transition (Args &&... args) -> decltype(aut_-> del_transition(std::forward< Args >(args)...))
 
auto lweight (Args &&... args) -> decltype(aut_-> lweight(std::forward< Args >(args)...))
 
auto new_state (Args &&... args) -> decltype(aut_-> new_state(std::forward< Args >(args)...))
 
auto new_transition (Args &&... args) -> decltype(aut_-> new_transition(std::forward< Args >(args)...))
 
auto new_transition_copy (Args &&... args) -> decltype(aut_-> new_transition_copy(std::forward< Args >(args)...))
 
auto rweight (Args &&... args) -> decltype(aut_-> rweight(std::forward< Args >(args)...))
 
auto set_final (Args &&... args) -> decltype(aut_-> set_ final(std
 
auto set_lazy (Args &&... args) -> decltype(aut_-> set_lazy(std::forward< Args >(args)...))
 
auto set_lazy_in (Args &&... args) -> decltype(aut_-> set_lazy_in(std::forward< Args >(args)...))
 
auto set_initial (Args &&... args) -> decltype(aut_-> set_initial(std::forward< Args >(args)...))
 
auto set_transition (Args &&... args) -> decltype(aut_-> set_transition(std::forward< Args >(args)...))
 
auto set_weight (Args &&... args) -> decltype(aut_-> set_weight(std::forward< Args >(args)...))
 
auto unset_final (Args &&... args) -> decltype(aut_-> unset_ final(std
 
auto unset_initial (Args &&... args) -> decltype(aut_-> unset_initial(std::forward< Args >(args)...))
 

Static Public Member Functions

static symbol sname ()
 
- Static Public Member Functions inherited from vcsn::detail::automaton_decorator< Aut, project_context< Tape, context_t_of< Aut > > >
static constexpr auto lazy_transition (Args &&... args) -> decltype(element_type::lazy_transition(std::forward< Args >(args)...))
 
static constexpr auto null_state (Args &&... args) -> decltype(element_type::null_state(std::forward< Args >(args)...))
 
static constexpr auto null_transition (Args &&... args) -> decltype(element_type::null_transition(std::forward< Args >(args)...))
 
static constexpr auto post (Args &&... args) -> decltype(element_type::post(std::forward< Args >(args)...))
 
static constexpr auto pre (Args &&... args) -> decltype(element_type::pre(std::forward< Args >(args)...))
 
static constexpr auto sname (Args &&... args) -> decltype(element_type::sname(std::forward< Args >(args)...))
 

Private Member Functions

template<std::size_t... I>
res_label_t hidden_label_of_ (transition_t t, index_sequence< I... >) const
 
template<typename L , std::size_t... I>
std::enable_if_t< L::has_one(), res_label_thidden_one_ (index_sequence< I... >) const
 
template<typename L , std::size_t... I>
std::enable_if_t<!L::has_one(), res_label_thidden_one_ (index_sequence< I... >) const
 
template<std::size_t... I>
res_labelset_t res_labelset_ (index_sequence< I... >) const
 

Static Private Member Functions

static label_t hide_ (full_label_t l)
 

Private Attributes

hidden_indices_t hidden_indices {}
 
context_t context_ = project<Tape>(full_context())
 Our apparent context. More...
 
labelset_ptr ls_ = std::make_shared<labelset_t>(aut_->labelset()->template set<Tape>())
 The apparent labelset. More...
 

Additional Inherited Members

- Protected Attributes inherited from vcsn::detail::automaton_decorator< Aut, project_context< Tape, context_t_of< Aut > > >
automaton_t aut_
 The wrapped automaton, possibly const. More...
 

Detailed Description

template<std::size_t Tape, Automaton Aut>
class vcsn::detail::focus_automaton_impl< Tape, Aut >

Read-write on an automaton, that hides all tapes but one.

Definition at line 38 of file focus.hh.

Member Typedef Documentation

◆ automaton_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::automaton_t = Aut

The type of the wrapped automaton.

Definition at line 44 of file focus.hh.

◆ context_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::context_t = project_context<Tape, full_context_t>

Exposed context.

Definition at line 64 of file focus.hh.

◆ fresh_automaton_t

template<std::size_t Tape, Automaton Aut>
template<typename = void>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::fresh_automaton_t = focus_automaton<Tape, fresh_automaton_t_of<automaton_t, full_context_t> >

The type of automata to produce this kind of automata.

For instance, insplitting on a focus_automaton<const mutable_automaton<Ctx>> should yield a focus_automaton<mutable_automaton<Ctx>>, without the "inner" const.

Note that we discard the demanded Context. This will probably raise some problems at some point, but the reason is that when we "make_fresh_automaton" from a focus_automaton, we must build a focus_automaton, which requires the full context! Typical example is focusing on tape 0 for a "LAL x LAL" is a "LAL" automaton, but making this is focus_automaton<0, LAL> is obviously wrong.

Unfortunately the compilers tend to issue error messages that make this hard to understand, even though we have some static assertions.

Definition at line 96 of file focus.hh.

◆ full_context_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::full_context_t = context_t_of<automaton_t>

Underlying automaton context.

Definition at line 57 of file focus.hh.

◆ full_label_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::full_label_t = typename full_labelset_t::value_t

Underlying automaton label.

Definition at line 61 of file focus.hh.

◆ full_labelset_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::full_labelset_t = typename full_context_t::labelset_t

Underlying automaton labelset.

Definition at line 59 of file focus.hh.

◆ hidden_indices_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_indices_t = concat_sequence <make_index_range_t<0, Tape>, make_index_range_t<Tape + 1, std::tuple_size<full_label_t>::value> >

Indices of the remaining tapes.

Definition at line 102 of file focus.hh.

◆ label_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::label_t = typename labelset_t::value_t

Definition at line 69 of file focus.hh.

◆ labelset_ptr

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::labelset_ptr = typename context_t::labelset_ptr

Definition at line 68 of file focus.hh.

◆ labelset_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::labelset_t = typename context_t::labelset_t

Exposed labelset.

Definition at line 67 of file focus.hh.

◆ res_label_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::res_label_t = typename res_labelset_t::value_t

Definition at line 107 of file focus.hh.

◆ res_labelset_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::res_labelset_t = typename hidden_label_type<Aut, hidden_indices_t>::type

Definition at line 106 of file focus.hh.

◆ state_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::state_t = state_t_of<automaton_t>

This automaton's state and transition types are those of the wrapped automaton.

Definition at line 53 of file focus.hh.

◆ super_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::super_t = automaton_decorator<automaton_t, context_t>

Definition at line 109 of file focus.hh.

◆ transition_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::transition_t = transition_t_of<automaton_t>

Definition at line 54 of file focus.hh.

◆ weight_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::weight_t = typename weightset_t::value_t

Definition at line 74 of file focus.hh.

◆ weightset_ptr

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::weightset_ptr = typename context_t::weightset_ptr

Definition at line 73 of file focus.hh.

◆ weightset_t

template<std::size_t Tape, Automaton Aut>
using vcsn::detail::focus_automaton_impl< Tape, Aut >::weightset_t = typename context_t::weightset_t

Exposed weightset.

Definition at line 72 of file focus.hh.

Constructor & Destructor Documentation

◆ focus_automaton_impl() [1/2]

template<std::size_t Tape, Automaton Aut>
vcsn::detail::focus_automaton_impl< Tape, Aut >::focus_automaton_impl ( const full_context_t ctx)
inline

Definition at line 113 of file focus.hh.

◆ focus_automaton_impl() [2/2]

template<std::size_t Tape, Automaton Aut>
vcsn::detail::focus_automaton_impl< Tape, Aut >::focus_automaton_impl ( const automaton_t aut)
inline

Definition at line 117 of file focus.hh.

Member Function Documentation

◆ add_transition() [1/2]

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::add_transition ( state_t  ,
state_t  ,
label_t  ,
weight_t   
) -> transition_t
inline

Definition at line 299 of file focus.hh.

◆ add_transition() [2/2]

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::add_transition ( state_t  ,
state_t  ,
label_t   
) -> transition_t
inline

Definition at line 301 of file focus.hh.

◆ add_transition_copy()

template<std::size_t Tape, Automaton Aut>
template<Automaton A>
transition_t vcsn::detail::focus_automaton_impl< Tape, Aut >::add_transition_copy ( state_t  src,
state_t  dst,
const A &  aut,
transition_t_of< A >  t,
bool  transpose = false 
)
inline

Copy the full wrapped transition.

Definition at line 283 of file focus.hh.

◆ context()

template<std::size_t Tape, Automaton Aut>
context_t vcsn::detail::focus_automaton_impl< Tape, Aut >::context ( ) const
inline

Definition at line 141 of file focus.hh.

◆ del_transition()

template<std::size_t Tape, Automaton Aut>
void vcsn::detail::focus_automaton_impl< Tape, Aut >::del_transition ( state_t  src,
state_t  dst,
label_t  l 
)
inline

Apparent label of a transition.

Definition at line 261 of file focus.hh.

◆ full_context()

template<std::size_t Tape, Automaton Aut>
full_context_t vcsn::detail::focus_automaton_impl< Tape, Aut >::full_context ( ) const
inline

Definition at line 136 of file focus.hh.

◆ get_transition()

template<std::size_t Tape, Automaton Aut>
transition_t vcsn::detail::focus_automaton_impl< Tape, Aut >::get_transition ( state_t  src,
state_t  dst,
label_t  l 
) const
inline

Definition at line 234 of file focus.hh.

◆ has_transition() [1/2]

template<std::size_t Tape, Automaton Aut>
bool vcsn::detail::focus_automaton_impl< Tape, Aut >::has_transition ( transition_t  t) const
inline

Whether this transition is present in the automaton.

Necessary for transpose's has_transition to be available.

Definition at line 246 of file focus.hh.

◆ has_transition() [2/2]

template<std::size_t Tape, Automaton Aut>
bool vcsn::detail::focus_automaton_impl< Tape, Aut >::has_transition ( state_t  src,
state_t  dst,
label_t  l 
) const
inline

Apparent label of a transition.

Definition at line 253 of file focus.hh.

◆ hidden_label_of()

template<std::size_t Tape, Automaton Aut>
res_label_t vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_label_of ( transition_t  t) const
inline

Definition at line 147 of file focus.hh.

◆ hidden_label_of_()

template<std::size_t Tape, Automaton Aut>
template<std::size_t... I>
res_label_t vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_label_of_ ( transition_t  t,
index_sequence< I... >   
) const
inlineprivate

Definition at line 182 of file focus.hh.

◆ hidden_one()

template<std::size_t Tape, Automaton Aut>
res_label_t vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_one ( ) const
inline

Definition at line 153 of file focus.hh.

◆ hidden_one_() [1/2]

template<std::size_t Tape, Automaton Aut>
template<typename L , std::size_t... I>
std::enable_if_t<L::has_one(), res_label_t> vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_one_ ( index_sequence< I... >  ) const
inlineprivate

Definition at line 190 of file focus.hh.

◆ hidden_one_() [2/2]

template<std::size_t Tape, Automaton Aut>
template<typename L , std::size_t... I>
std::enable_if_t<!L::has_one(), res_label_t> vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_one_ ( index_sequence< I... >  ) const
inlineprivate

Definition at line 198 of file focus.hh.

◆ hide_()

template<std::size_t Tape, Automaton Aut>
static label_t vcsn::detail::focus_automaton_impl< Tape, Aut >::hide_ ( full_label_t  l)
inlinestaticprivate

Definition at line 176 of file focus.hh.

◆ label_of()

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::label_of ( transition_t  t) const -> label_t
inline

Apparent label of a transition.

Definition at line 216 of file focus.hh.

◆ labelset()

template<std::size_t Tape, Automaton Aut>
labelset_ptr vcsn::detail::focus_automaton_impl< Tape, Aut >::labelset ( ) const
inline

Apparent labelset.

Definition at line 166 of file focus.hh.

◆ new_transition() [1/2]

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::new_transition ( state_t  ,
state_t  ,
label_t  ,
weight_t   
) -> transition_t
inline

Definition at line 303 of file focus.hh.

◆ new_transition() [2/2]

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::new_transition ( state_t  ,
state_t  ,
label_t   
) -> transition_t
inline

Definition at line 305 of file focus.hh.

◆ new_transition_copy()

template<std::size_t Tape, Automaton Aut>
template<Automaton A>
transition_t vcsn::detail::focus_automaton_impl< Tape, Aut >::new_transition_copy ( state_t  src,
state_t  dst,
const A &  aut,
transition_t_of< A >  t,
bool  transpose = false 
)
inline

Copy the full wrapped transition.

Definition at line 271 of file focus.hh.

◆ out()

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::out ( state_t  s) const -> decltype(out(aut_, s))
inline

Definition at line 225 of file focus.hh.

◆ print_set()

template<std::size_t Tape, Automaton Aut>
std::ostream& vcsn::detail::focus_automaton_impl< Tape, Aut >::print_set ( std::ostream &  o,
format  fmt = {} 
) const
inline

Definition at line 129 of file focus.hh.

◆ res_labelset()

template<std::size_t Tape, Automaton Aut>
res_labelset_t vcsn::detail::focus_automaton_impl< Tape, Aut >::res_labelset ( ) const
inline

Definition at line 159 of file focus.hh.

◆ res_labelset_()

template<std::size_t Tape, Automaton Aut>
template<std::size_t... I>
res_labelset_t vcsn::detail::focus_automaton_impl< Tape, Aut >::res_labelset_ ( index_sequence< I... >  ) const
inlineprivate

Definition at line 204 of file focus.hh.

◆ set_transition()

template<std::size_t Tape, Automaton Aut>
auto vcsn::detail::focus_automaton_impl< Tape, Aut >::set_transition ( state_t  ,
state_t  ,
label_t  ,
weight_t   
) -> transition_t
inline

Definition at line 307 of file focus.hh.

◆ sname()

template<std::size_t Tape, Automaton Aut>
static symbol vcsn::detail::focus_automaton_impl< Tape, Aut >::sname ( )
inlinestatic

Definition at line 121 of file focus.hh.

References vcsn::res, vcsn::sname(), and vcsn::rat::to_string().

Here is the call graph for this function:

Member Data Documentation

◆ context_

template<std::size_t Tape, Automaton Aut>
context_t vcsn::detail::focus_automaton_impl< Tape, Aut >::context_ = project<Tape>(full_context())
private

Our apparent context.

This is not a luxury to cache it: benches show that in some cases, intensive (and admittedly wrong: they should have been cached on the caller side) calls to context() ruins the performances.

Definition at line 315 of file focus.hh.

◆ hidden_indices

template<std::size_t Tape, Automaton Aut>
hidden_indices_t vcsn::detail::focus_automaton_impl< Tape, Aut >::hidden_indices {}
private

Definition at line 174 of file focus.hh.

◆ ls_

template<std::size_t Tape, Automaton Aut>
labelset_ptr vcsn::detail::focus_automaton_impl< Tape, Aut >::ls_ = std::make_shared<labelset_t>(aut_->labelset()->template set<Tape>())
private

The apparent labelset.

Caching it avoids difference in behavior with other automata. This example would not be working otherwise (with focus a focus automaton): const auto& ls = *focus->labelset();

Definition at line 321 of file focus.hh.


The documentation for this class was generated from the following file: