Vcsn  2.3
Be Rational
vcsn::detail::is_valid_impl< Aut, has_one > Class Template Reference

#include <is-valid.hh>

Collaboration diagram for vcsn::detail::is_valid_impl< Aut, has_one >:

Public Types

using automaton_t = std::remove_cv_t< Aut >
 
using weightset_t = weightset_t_of< automaton_t >
 

Static Public Member Functions

static bool is_valid (const automaton_t &aut)
 Whether an automaton is valid. More...
 

Static Private Member Functions

template<star_status_t Status>
static std::enable_if_t< Status==star_status_t::TOPS, bool > is_valid_ (const automaton_t &aut)
 
template<star_status_t Status>
static std::enable_if_t< Status==star_status_t::ABSVAL, bool > is_valid_ (const automaton_t &aut)
 
template<star_status_t Status>
static std::enable_if_t< Status==star_status_t::STARRABLE, bool > is_valid_ (const automaton_t &)
 
template<star_status_t Status>
static std::enable_if_t< Status==star_status_t::NON_STARRABLE, bool > is_valid_ (const automaton_t &aut)
 

Detailed Description

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
class vcsn::detail::is_valid_impl< Aut, has_one >

Definition at line 58 of file is-valid.hh.

Member Typedef Documentation

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
using vcsn::detail::is_valid_impl< Aut, has_one >::automaton_t = std::remove_cv_t<Aut>

Definition at line 61 of file is-valid.hh.

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
using vcsn::detail::is_valid_impl< Aut, has_one >::weightset_t = weightset_t_of<automaton_t>

Definition at line 62 of file is-valid.hh.

Member Function Documentation

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
static bool vcsn::detail::is_valid_impl< Aut, has_one >::is_valid ( const automaton_t aut)
inlinestatic

Whether an automaton is valid.

The behavior of this method depends on the star_status of the weightset:

– starrable: return true; – tops: copy the input and return the result of proper on the copy; – non_starrable: return true iff the automaton is epsilon-acyclic WARNING: for weightsets with zero divisor, should test whether the weight of every simple circuit is zero; – absval: build a copy of the input where each weight is replaced by its absolute value and return the result of proper on the copy.

Parameters
autThe tested automaton
Returns
true iff the automaton is valid

Definition at line 82 of file is-valid.hh.

Referenced by vcsn::is_valid().

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if_t<Status == star_status_t::TOPS, bool> vcsn::detail::is_valid_impl< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 91 of file is-valid.hh.

References vcsn::copy(), vcsn::is_eps_acyclic(), vcsn::is_proper(), and vcsn::detail::is_properable().

Here is the call graph for this function:

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if_t<Status == star_status_t::ABSVAL, bool> vcsn::detail::is_valid_impl< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 101 of file is-valid.hh.

References vcsn::detail::absval(), vcsn::is_eps_acyclic(), vcsn::is_proper(), and vcsn::detail::is_properable().

Here is the call graph for this function:

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if_t<Status == star_status_t::STARRABLE, bool> vcsn::detail::is_valid_impl< Aut, has_one >::is_valid_ ( const automaton_t )
inlinestaticprivate

Definition at line 111 of file is-valid.hh.

template<Automaton Aut, bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if_t<Status == star_status_t::NON_STARRABLE, bool> vcsn::detail::is_valid_impl< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 119 of file is-valid.hh.

References vcsn::is_eps_acyclic(), and vcsn::is_proper().

Here is the call graph for this function:


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