Vcsn
2.2
Be Rational
|
Spontaneous transition elimination. More...
#include <proper.hh>
Public Member Functions | |
properer (automaton_t aut, bool prune=true, const std::string &algo="auto") | |
Remove the epsilon-transitions of the input. More... | |
aut_proper_t | operator() () const |
Proper automata with proper context. More... | |
void | here () |
In-place spontaneous transition removal. More... | |
Private Types | |
using | automaton_t = std::remove_cv_t< Aut > |
using | self_t = properer |
using | weightset_t = weightset_t_of< automaton_t > |
using | labelset_t = labelset_t_of< automaton_t > |
using | aut_proper_t = fresh_automaton_t_of< automaton_t, detail::proper_context< context_t_of< automaton_t >>> |
The result type. More... | |
Private Member Functions | |
aut_proper_t | remover_ () const |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::ABSVAL, aut_proper_t > | proper_star_ () const |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::NON_STARRABLE, aut_proper_t > | proper_star_ () const |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::STARRABLE, aut_proper_t > | proper_star_ () const |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::TOPS, aut_proper_t > | proper_star_ () const |
void | remover_here_ () |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::ABSVAL > | proper_star_here_ () |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::NON_STARRABLE > | proper_star_here_ () |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::STARRABLE > | proper_star_here_ () |
template<star_status_t Status> | |
std::enable_if_t< Status==star_status_t::TOPS > | proper_star_here_ () |
Private Attributes | |
automaton_t | aut_ |
bool | prune_ |
const std::string & | algo_ |
Spontaneous transition elimination.
Aut | the automaton type on which to run. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
Remove the epsilon-transitions of the input.
The behaviour of this method depends on the star_status of the weight_set:
– starrable : always valid, does not throw any exception – tops : the proper algo is directly launched on the input; if it returns false, an exception is launched – non_starrable / absval: is_valid is called before launching the algorithm.
aut | The automaton in which epsilon-transitions will be removed |
prune | Whether to remove states that become inaccessible. |
runtime_error | if the input is not valid |
|
inline |
|
inline |
|
inlineprivate |
Definition at line 113 of file proper.hh.
References vcsn::detail::properer< Aut >::aut_, vcsn::is_valid(), vcsn::detail::properer< Aut >::remover_(), and vcsn::require().
|
inlineprivate |
Definition at line 121 of file proper.hh.
References vcsn::detail::properer< Aut >::aut_, vcsn::is_valid(), vcsn::detail::properer< Aut >::remover_(), and vcsn::require().
|
inlineprivate |
Definition at line 129 of file proper.hh.
References vcsn::detail::properer< Aut >::remover_().
|
inlineprivate |
Definition at line 136 of file proper.hh.
References vcsn::detail::properer< Aut >::remover_().
|
inlineprivate |
Definition at line 168 of file proper.hh.
References vcsn::detail::properer< Aut >::aut_, vcsn::is_valid(), vcsn::detail::properer< Aut >::remover_here_(), and vcsn::require().
|
inlineprivate |
Definition at line 176 of file proper.hh.
References vcsn::detail::properer< Aut >::aut_, vcsn::is_valid(), vcsn::detail::properer< Aut >::remover_here_(), and vcsn::require().
|
inlineprivate |
Definition at line 184 of file proper.hh.
References vcsn::detail::properer< Aut >::remover_here_().
|
inlineprivate |
Definition at line 191 of file proper.hh.
References vcsn::detail::properer< Aut >::remover_here_().
|
inlineprivate |
Definition at line 80 of file proper.hh.
References vcsn::detail::properer< Aut >::algo_, vcsn::copy(), vcsn::detail::map(), vcsn::detail::epsilon_remover_distance< Aut, has_one >::prune_, vcsn::detail::epsilon_remover< Aut, has_one >::prune_, and vcsn::detail::epsilon_remover_separate< Aut, has_one >::prune_.
Referenced by vcsn::detail::properer< Aut >::proper_star_().
|
inlineprivate |
Definition at line 153 of file proper.hh.
References vcsn::detail::properer< Aut >::algo_, vcsn::detail::properer< Aut >::aut_, vcsn::detail::epsilon_remover< Aut, has_one >::in_situ_remover(), and vcsn::detail::properer< Aut >::prune_.
Referenced by vcsn::detail::properer< Aut >::proper_star_here_().
|
private |
Definition at line 205 of file proper.hh.
Referenced by vcsn::detail::properer< Aut >::remover_(), and vcsn::detail::properer< Aut >::remover_here_().
|
private |
Definition at line 203 of file proper.hh.
Referenced by vcsn::detail::properer< Aut >::proper_star_(), vcsn::detail::properer< Aut >::proper_star_here_(), and vcsn::detail::properer< Aut >::remover_here_().
|
private |
Definition at line 204 of file proper.hh.
Referenced by vcsn::detail::properer< Aut >::remover_here_().