Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn::detail::is_valider< Aut, has_one > Class Template Reference

#include <is-valid.hh>

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

Public Types

using automaton_t = typename std::remove_cv< Aut >::type
 
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< Status==star_status_t::TOPS,
bool >::type 
is_valid_ (const automaton_t &aut)
 
template<star_status_t Status>
static std::enable_if< Status==star_status_t::ABSVAL,
bool >::type 
is_valid_ (const automaton_t &aut)
 
template<star_status_t Status>
static std::enable_if< Status==star_status_t::STARRABLE,
bool >::type 
is_valid_ (const automaton_t &)
 
template<star_status_t Status>
static std::enable_if< Status==star_status_t::NON_STARRABLE,
bool >::type 
is_valid_ (const automaton_t &aut)
 

Detailed Description

template<typename Aut, bool has_one = context_t_of<Aut>::has_one()>
class vcsn::detail::is_valider< Aut, has_one >

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

Member Typedef Documentation

template<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
using vcsn::detail::is_valider< Aut, has_one >::automaton_t = typename std::remove_cv<Aut>::type

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

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

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

Member Function Documentation

template<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
static bool vcsn::detail::is_valider< 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 weight_set:

– 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 weight_sets 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 75 of file is-valid.hh.

Referenced by vcsn::is_valid().

template<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if<Status == star_status_t::TOPS, bool>::type vcsn::detail::is_valider< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 85 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<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if<Status == star_status_t::ABSVAL, bool>::type vcsn::detail::is_valider< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 96 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<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if<Status == star_status_t::STARRABLE, bool>::type vcsn::detail::is_valider< Aut, has_one >::is_valid_ ( const automaton_t )
inlinestaticprivate

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

template<typename Aut , bool has_one = context_t_of<Aut>::has_one()>
template<star_status_t Status>
static std::enable_if<Status == star_status_t::NON_STARRABLE, bool>::type vcsn::detail::is_valider< Aut, has_one >::is_valid_ ( const automaton_t aut)
inlinestaticprivate

Definition at line 116 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: