Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn Namespace Reference

Namespaces

 ast
 
 ctx
 
 detail
 
 detail_info
 
 detail_moore
 
 detail_signature
 
 detail_weighted
 
 dyn
 FIXME: duplicate code with determinize.
 
 rat
 

Classes

class  are_isomorphicer
 
struct  as_pair
 
struct  as_tuple
 
class  automaton_editor
 Abstract Builder (the design pattern) for automata. More...
 
class  automatonset
 
class  char_letters
 
struct  container_filter_range
 
struct  container_range
 Restrict the interface of a container to begin/end. More...
 
class  context
 
struct  cross_sequences
 
class  edit_automaton
 Concrete Builder (the design pattern) for automata. More...
 
struct  empty_t
 Empty labels, for LAO. More...
 
class  equal_to
 This is useful to make hashes with labels or weights as keys without using non-default constructors; to be used along with vcsn::hash. More...
 
class  file_library
 Manage search paths. More...
 
struct  has_size_member_function
 Whether T features a size() function. More...
 
class  hash
 This is useful to make hashes with labels or weights as keys without using non-default constructors; to be used along with vcsn::equal_to. More...
 
struct  integral_constant
 A simple placeholder for integral constants. More...
 
struct  iomanipulator
 Defines the operator() for the classes get_type, set_type and swap_type. More...
 
struct  is_lal
 
struct  is_lan
 
struct  is_lao
 
struct  is_lar
 
struct  is_lat
 
struct  is_law
 
struct  labels_are_letters
 
struct  labels_are_nullable
 
struct  labels_are_one
 
struct  labels_are_ratexps
 
struct  labels_are_tuples
 
struct  labels_are_words
 
class  lazy_automaton_editor
 Build an automaton with unknown context. More...
 
class  less
 
class  letterset
 Implementation of labels are letters. More...
 
struct  MilitaryOrder
 Military strict order predicate. More...
 
class  nullableset
 Implementation of labels are nullables (letter or empty). More...
 
class  oneset
 Implementation of labels are ones: there is a single instance of label. More...
 
class  path
 Paths in filesystems, i.e., file names. More...
 
class  polynomialset
 Linear combination of labels: map labels to weights. More...
 
struct  possibly_labeled_transition_tuple
 
struct  possibly_labeled_transition_tuple< State, empty_t >
 
struct  proper_labelset
 From a labelset, its non-nullable labelset. More...
 
struct  proper_labelset< nullableset< LabelSet > >
 
struct  random_selector
 
class  set_alphabet
 
struct  signature
 Signature of a function call. More...
 
struct  snamer
 
struct  snamer< bool >
 
struct  snamer< const std::string >
 
struct  snamer< const std::vector< unsigned > >
 
struct  snamer< float >
 
struct  snamer< int >
 
struct  snamer< std::integral_constant< T, Value > >
 
struct  snamer< std::istream >
 
struct  snamer< std::ostream >
 
struct  snamer< std::shared_ptr< T > >
 
struct  snamer< unsigned >
 
struct  snamer< vcsn::direction >
 
struct  snamer< vcsn::rat::identities >
 
class  string_letters
 Represent alphabets whose "letters" are strings. More...
 
struct  transition_tuple
 
struct  transition_tuple< State, Label, bool >
 
class  tupleset
 A ValueSet which is a Cartesian product of ValueSets. More...
 
struct  variadic_mul_mixin
 Provide a variadic mul on top of a binary mul(), and one(). More...
 
struct  vnamer
 
struct  vnamer< bool >
 
struct  vnamer< const std::string >
 
struct  vnamer< const std::vector< unsigned > >
 
struct  vnamer< float >
 
struct  vnamer< int >
 
struct  vnamer< integral_constant >
 
struct  vnamer< std::integral_constant< T, Value > >
 
struct  vnamer< std::istream >
 
struct  vnamer< std::ostream >
 
struct  vnamer< unsigned >
 
struct  vnamer< vcsn::direction >
 
struct  vnamer< vcsn::rat::identities >
 
class  wordset
 Implementation of labels are words. More...
 
class  xalloc
 Allocate slots in std::ostreams. More...
 
struct  zip_sequences
 
struct  zipped_maps
 

Typedefs

template<typename Aut >
using states_t = std::unordered_set< state_t_of< Aut >>
 
template<typename Aut >
using determinized_automaton = std::shared_ptr< detail::determinized_automaton_impl< Aut >>
 A determinized automaton as a shared pointer. More...
 
template<typename Aut >
using detweighted_automaton = std::shared_ptr< detail::detweighted_automaton_impl< Aut >>
 A determinized automaton as a shared pointer. More...
 
template<typename Aut >
using filter_automaton = std::shared_ptr< detail::filter_automaton_impl< Aut >>
 
template<std::size_t Tape, typename Aut >
using blind_automaton = std::shared_ptr< detail::blind_automaton_impl< Tape, Aut >>
 A blind automaton as a shared pointer. More...
 
template<typename Aut >
using transpose_automaton = std::shared_ptr< detail::transpose_automaton_impl< Aut >>
 An automaton wrapper that presents the transposed automaton. More...
 
template<typename Aut >
using pair_automaton = std::shared_ptr< detail::pair_automaton_impl< Aut >>
 
template<typename Aut , typename... Auts>
using product_automaton = std::shared_ptr< detail::product_automaton_impl< Aut, Auts...>>
 A product automaton as a shared pointer. More...
 
template<typename Aut , typename Lifted = detail::lifted_automaton_t<Aut>>
using state_chooser_t = std::function< state_t_of< Lifted >(const Lifted &)>
 A state (inner) from an automaton. More...
 
template<typename Context >
using mutable_automaton = std::shared_ptr< detail::mutable_automaton_impl< Context >>
 
template<typename Aut >
using permutation_automaton = std::shared_ptr< detail::permutation_automaton_impl< Aut >>
 A permutation automaton as a shared pointer. More...
 
template<typename Aut >
using ratexp_automaton = std::shared_ptr< detail::ratexp_automaton_impl< Aut >>
 A ratexp automaton as a shared pointer. More...
 
template<typename... ValueSets>
using join_t = decltype(join(std::declval< ValueSets >()...))
 The type of the join of the ValueSets. More...
 
template<typename Kinded , typename R = Kinded>
using if_lal = typename std::enable_if< is_lal< Kinded >::value, R >::type
 
template<typename Kinded , typename R = Kinded>
using if_lan = typename std::enable_if< is_lan< Kinded >::value, R >::type
 
template<typename Kinded , typename R = Kinded>
using if_lao = typename std::enable_if< is_lao< Kinded >::value, R >::type
 
template<typename Kinded , typename R = Kinded>
using if_lar = typename std::enable_if< is_lar< Kinded >::value, R >::type
 
template<typename Kinded , typename R = Kinded>
using if_lat = typename std::enable_if< is_lat< Kinded >::value, R >::type
 
template<typename Kinded , typename R = Kinded>
using if_law = typename std::enable_if< is_law< Kinded >::value, R >::type
 
template<typename Aut >
using partition_automaton = std::shared_ptr< detail::partition_automaton_impl< Aut >>
 A partition automaton as a shared pointer. More...
 
template<typename Context >
using ratexpset = variadic_mul_mixin< rat::ratexpset_impl< Context >>
 
template<typename... Auts>
using tuple_automaton = std::shared_ptr< detail::tuple_automaton_impl< Auts...>>
 A product automaton as a shared pointer. More...
 
template<typename... ValueSets>
using meet_t = decltype(meet(std::declval< ValueSets >()...))
 
template<typename T >
using base_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
 T without reference or const/volatile qualifiers. More...
 
template<typename ValueSet >
using context_t_of = typename detail::context_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using label_t_of = typename detail::label_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using labelset_t_of = typename detail::labelset_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using state_t_of = typename detail::state_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using transition_t_of = typename detail::transition_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using weight_t_of = typename detail::weight_t_of_impl< base_t< ValueSet >>::type
 
template<typename ValueSet >
using weightset_t_of = typename detail::weightset_t_of_impl< base_t< ValueSet >>::type
 
template<typename... ValueSets>
using labelset_types = detail::labelset_types< void, ValueSets...>
 
using dynamic_bitset = boost::dynamic_bitset<>
 
using symbol = boost::flyweight< std::string, boost::flyweights::no_tracking >
 An internalized string. More...
 
template<bool Cond, typename T = void>
using enable_if_t = typename std::enable_if< Cond, T >::type
 
using b = variadic_mul_mixin< detail::b_impl >
 
using f2 = variadic_mul_mixin< detail::f2_impl >
 
using q = variadic_mul_mixin< detail::q_impl >
 
using qmp = variadic_mul_mixin< detail::qmp_impl >
 
using r = variadic_mul_mixin< detail::r_impl >
 
using z = variadic_mul_mixin< detail::z_impl >
 
using zmin = variadic_mul_mixin< detail::zmin_impl >
 

Enumerations

enum  SCC_ALGO { SCC_ALGO::TARJAN = 0, SCC_ALGO::KOSARAJU = 1 }
 
enum  direction { direction::forward, direction::backward }
 Orientation. More...
 
enum  star_status_t { STARRABLE, NON_STARRABLE, TOPS, ABSVAL }
 

Functions

template<typename Aut >
states_t< Aut > accessible_states (const Aut &aptr)
 
template<typename Aut >
states_t< Aut > coaccessible_states (const Aut &a)
 
template<typename Aut >
states_t< Aut > useful_states (const Aut &a)
 
template<typename Aut >
size_t num_accessible_states (const Aut &a)
 Number of accessible states, not counting pre() and post(). More...
 
template<typename Aut >
size_t num_coaccessible_states (const Aut &a)
 Number of accessible states, not counting pre() and post(). More...
 
template<typename Aut >
size_t num_useful_states (const Aut &a)
 Number of accessible states, not counting pre() and post(). More...
 
template<typename Aut >
filter_automaton< Aut > accessible (const Aut &a)
 
template<typename Aut >
filter_automaton< Aut > coaccessible (const Aut &a)
 
template<typename Aut >
filter_automaton< Aut > trim (const Aut &a)
 
template<typename Aut >
bool is_trim (const Aut &a)
 
template<typename Aut >
bool is_useless (const Aut &a)
 
template<typename Aut >
bool is_accessible (const Aut &a)
 
template<typename Aut >
bool is_coaccessible (const Aut &a)
 
template<typename Aut >
bool is_empty (const Aut &a) ATTRIBUTE_PURE
 
template<typename Aut1 , typename Aut2 >
auto are_equivalent (const Aut1 &a1, const Aut2 &a2) -> typename std::enable_if<(labelset_t_of< Aut1 >::is_free()&&std::is_same< weightset_t_of< Aut1 >, b >::value &&labelset_t_of< Aut2 >::is_free()&&std::is_same< weightset_t_of< Aut2 >, b >::value), bool >::type
 Check equivalence between Boolean automata on a free labelset. More...
 
template<typename Lhs , typename Rhs >
Lhs::element_type::automaton_nocv_t difference (const Lhs &lhs, const Rhs &rhs)
 An automaton that computes weights of lhs, but not by rhs. More...
 
template<typename RatExpSet >
RatExpSet::value_t difference (const RatExpSet &rs, const typename RatExpSet::value_t &lhs, const typename RatExpSet::value_t &rhs)
 Difference of ratexps. More...
 
template<typename Aut1 , typename Aut2 >
bool are_isomorphic (const Aut1 &a1, const Aut2 &a2)
 
template<unsigned Tape, typename Aut >
blind_automaton< Tape, Aut > blind (Aut aut)
 
template<typename Ctx >
mutable_automaton< Ctx > cerny (const Ctx &ctx, unsigned num_states)
 Cerny automata are automata whose synchronizing word length is always (n - 1)^2, the upper bound of the Cerny's conjecture. More...
 
template<typename Aut >
void complement_here (Aut &aut)
 
template<typename Aut >
auto complement (const Aut &aut) -> decltype(copy(aut))
 
template<typename Aut >
Aut & complete_here (Aut &aut)
 Complete aut and return it. More...
 
template<typename Aut >
auto complete (const Aut &aut) -> decltype(::vcsn::copy(aut))
 
template<typename Lhs , typename Rhs >
auto compose (Lhs &lhs, Rhs &rhs) -> typename detail::composer< blind_automaton< 1, Lhs >, blind_automaton< 0, Rhs >>::automaton_t
 Build the (accessible part of the) composition. More...
 
template<typename A , typename B >
A & concatenate_here (A &res, const B &b)
 Append automaton b to res. More...
 
template<typename A , typename B >
auto concatenate (const A &lhs, const B &rhs) -> decltype(join_automata(lhs, rhs))
 Concatenate two standard automata. More...
 
template<typename Aut >
Aut chain (const Aut &aut, int min, int max)
 
template<typename ValueSet >
ValueSet::value_t concatenate (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Concatenation/product of polynomials/ratexps. More...
 
template<typename RatExpSet >
RatExpSet::value_t chain (const RatExpSet &rs, const typename RatExpSet::value_t &r, int min, int max)
 
template<typename ValueSet >
ValueSet::value_t multiply (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Product of weights. More...
 
template<typename RatExpSet >
weight_t_of< RatExpSet > constant_term (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 
template<typename AutIn , typename AutOut , typename Pred >
void copy_into (const AutIn &in, AutOut &out, Pred keep_state)
 Copy an automaton. More...
 
template<typename AutIn , typename AutOut >
void copy_into (const AutIn &in, AutOut &out)
 
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t, typename Pred >
AutOut copy (const AutIn &input, Pred keep_state)
 A copy of input keeping only its states that are accepted by keep_state. More...
 
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut copy (const AutIn &input)
 A copy of input. More...
 
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut copy (const AutIn &input, const std::set< state_t_of< AutIn >> &keep)
 A copy of input keeping only its states that are members of std::set keep. More...
 
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut copy (const AutIn &input, const std::unordered_set< state_t_of< AutIn >> &keep)
 A copy of input keeping only its states that are members of std::unordered_set keep. More...
 
template<typename Context >
mutable_automaton< Context > de_bruijn (const Context &ctx, unsigned n)
 
template<typename RatExpSet >
rat::ratexp_polynomial_t
< RatExpSet > 
derivation (const RatExpSet &rs, const typename RatExpSet::value_t &e, label_t_of< RatExpSet > a, bool breaking=false)
 Derive a ratexp wrt to a letter. More...
 
template<typename RatExpSet >
rat::ratexp_polynomial_t
< RatExpSet > 
derivation (const RatExpSet &rs, const rat::ratexp_polynomial_t< RatExpSet > &p, label_t_of< RatExpSet > a, bool breaking=false)
 Derive a polynomial of ratexps wrt to a letter. More...
 
template<typename RatExpSet >
rat::ratexp_polynomial_t
< RatExpSet > 
derivation (const RatExpSet &rs, const typename RatExpSet::value_t &e, const typename RatExpSet::labelset_t::word_t &l, bool breaking=false)
 Derive a ratexp wrt to a word. More...
 
template<typename RatExpSet >
ratexp_automaton
< mutable_automaton< typename
RatExpSet::context_t > > 
derived_term_derivation (const RatExpSet &rs, const typename RatExpSet::value_t &r, bool breaking=false)
 The derived-term automaton, computed by derivation. More...
 
template<typename RatExpSet >
ratexp_automaton
< mutable_automaton< typename
RatExpSet::context_t > > 
derived_term_expansion (const RatExpSet &rs, const typename RatExpSet::value_t &r, bool breaking=false)
 The derived-term automaton, computed by expansion. More...
 
template<typename Aut >
auto determinize (const Aut &a) -> determinized_automaton< Aut >
 
template<typename Aut >
auto codeterminize (const Aut &a) -> decltype(transpose(determinize(transpose(a))))
 
template<typename Aut >
auto determinize_weighted (const Aut &a) -> detweighted_automaton< Aut >
 
template<typename Aut >
auto codeterminize_weighted (const Aut &aut) -> decltype(transpose(determinize_weighted(transpose(aut))))
 
template<typename Aut >
std::unordered_map< state_t_of
< Aut >, weight_t_of< Aut > > 
ss_shortest_distance (Aut aut, state_t_of< Aut > s0)
 Single source shortest distance. More...
 
template<typename Aut >
std::unordered_map< state_t_of
< Aut >, std::pair< unsigned,
transition_t_of< Aut > > > 
paths_ibfs (const Aut &aut, std::vector< state_t_of< Aut >> start)
 
template<typename Aut >
std::vector< transition_t_of
< Aut > > 
path_bfs (const Aut &aut, state_t_of< Aut > start, state_t_of< Aut > end)
 A shortest path between two states. More...
 
template<typename Context >
mutable_automaton< Context > divkbaseb (const Context &ctx, unsigned divisor, unsigned base)
 Build the Boolean automaton which accepts a word n representing a number in base "base" if and only if divisor|n. More...
 
template<typename Aut >
std::ostream & dot (const Aut &aut, std::ostream &out, bool dot2tex=false)
 
template<class Context >
mutable_automaton< Context > double_ring (const Context &ctx, unsigned n, const std::vector< unsigned > &finals)
 
template<typename Aut >
std::ostream & efsm (const Aut &aut, std::ostream &out)
 Format automaton to EFSM format, based on FSM format. More...
 
template<typename Automaton >
detail::enumerater< Automaton >
::polynomial_t 
enumerate (const Automaton &aut, unsigned max)
 
template<typename Automaton >
detail::enumerater< Automaton >
::polynomial_t 
shortest (const Automaton &aut, unsigned num)
 
template<typename Aut >
auto eval (const Aut &a, const typename labelset_t_of< Aut >::word_t &w) -> weight_t_of< Aut >
 
template<typename RatExpSet >
RatExpSet::value_t expand (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 Expanding a typed ratexp shared_ptr. More...
 
template<typename Aut >
filter_automaton< Aut > filter (const Aut &aut, const std::unordered_set< state_t_of< Aut >> &ss)
 Get an automaton who is a part state set ss of aut. More...
 
template<typename Aut >
bool in_situ_remover (Aut &aut, bool prune)
 Blindly eliminate epsilon transitions without checking for the validity of the automaton. More...
 
template<typename Aut >
bool is_ambiguous (const Aut &aut)
 
template<typename Aut >
bool is_proper (const Aut &aut) ATTRIBUTE_CONST
 Test whether an automaton is proper. More...
 
template<typename Aut >
bool is_valid (const Aut &aut)
 
template<typename RatExpSet >
bool is_valid (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 Whether e has only computable stars. More...
 
template<typename Aut >
std::ostream & fado (const Aut &aut, std::ostream &out)
 
template<typename Aut >
std::ostream & grail (const Aut &aut, std::ostream &out)
 
template<typename Aut >
bool cycle_identity (const detail::component_t< Aut > &c, const Aut &aut)
 Check the weight of two states on this component is unique. More...
 
template<typename InAut , typename OutAut >
void create_states_and_trans_ (const InAut &aut, OutAut &naut1, OutAut &naut2)
 Create states and the transitions two new automata naut1 and naut2 with weight of transition <(w, one)> and <(one, w)> corresponding with the weight of transition <w> of aut. More...
 
template<typename Aut >
bool has_twins_property (const Aut &aut)
 Whether aut has the twins property. More...
 
template<class A >
std::ostream & info (const A &aut, std::ostream &out, bool detailed=false)
 
template<class RatExpSet >
void info (const RatExpSet &rs, const typename RatExpSet::value_t &e, std::ostream &o)
 
template<typename Aut >
auto insplit (const Aut &aut) -> decltype(detail::insplit(aut))
 
template<typename Aut >
bool is_ambiguous (const Aut &aut, std::tuple< state_t_of< Aut >, state_t_of< Aut >> &witness)
 Whether an automaton is ambiguous. More...
 
template<typename Aut >
labelset_t_of< Aut >::word_t ambiguous_word (const Aut &aut)
 
template<typename Aut >
bool is_cycle_ambiguous (const Aut &aut)
 Whether aut is cycle-ambiguous. More...
 
template<typename Aut >
bool is_cycle_ambiguous_scc (const Aut &aut)
 Whether aut is cycle-ambiguous. More...
 
template<typename Aut >
bool is_complete (const Aut &aut)
 Whether aut is complete. More...
 
template<typename Aut >
bool is_deterministic (const Aut &aut, state_t_of< Aut > s)
 Whether state s is deterministic in aut. More...
 
template<class Aut >
size_t num_deterministic_states (const Aut &aut)
 Number of non-deterministic states. More...
 
template<class Aut >
size_t num_codeterministic_states (const Aut &aut)
 Number of non-deterministic states of transpositive automaton. More...
 
template<class Aut >
bool is_deterministic (const Aut &aut)
 Whether has at most an initial state, and all its states are deterministic. More...
 
template<class Aut >
bool is_codeterministic (const Aut &aut)
 Whether the transpositive automaton is deterministic. More...
 
template<typename Aut >
ATTRIBUTE_CONST bool is_eps_acyclic (const Aut &aut)
 
template<typename Aut >
bool is_identity (const Aut &aut)
 Whether transducer aut is equivalent to the identity function on all successful path. More...
 
template<typename Aut >
bool is_functional (const Aut &aut)
 Whether aut is functional. More...
 
template<class Context >
mutable_automaton< Context > ladybird (const Context &ctx, unsigned n)
 
template<typename Aut >
Aut & left_mult_here (const weight_t_of< Aut > &w, Aut &res)
 
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut left_mult (const weight_t_of< AutOut > &w, const AutIn &aut)
 
template<typename RatExpSet >
RatExpSet::value_t left_mult (const RatExpSet &rs, const weight_t_of< RatExpSet > &w, const typename RatExpSet::value_t &r)
 
template<typename WeightSet , typename RatExpSet >
ratexpset< context
< labelset_t_of< RatExpSet >
, join_t< WeightSet,
weightset_t_of< RatExpSet > > > > 
join_weightset_ratexpset (const WeightSet &ws, const RatExpSet &rs)
 Join between a ratexpset and a weightset. More...
 
template<typename Aut >
Aut & right_mult_here (Aut &res, const weight_t_of< Aut > &w)
 
template<typename Aut >
Aut::element_type::automaton_nocv_t right_mult (const Aut &aut, const weight_t_of< Aut > &w)
 
template<typename RatExpSet >
RatExpSet::value_t right_mult (const RatExpSet &rs, const typename RatExpSet::value_t &r, const weight_t_of< RatExpSet > &w)
 
template<typename Aut >
detail::lifted_automaton_t< Aut > lift (const Aut &a)
 
template<typename RatExpSet >
detail::lifted_ratexpset_t
< RatExpSet >::value_t 
lift (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 
template<typename Ctx >
Ctx make_context (const std::string &name)
 
template<typename Aut >
auto minimize_brzozowski (const Aut &a) -> decltype(determinize(codeterminize(a)))
 
template<typename Aut >
auto cominimize_brzozowski (const Aut &a) -> decltype(transpose(minimize_brzozowski(transpose(a))))
 
template<typename Aut >
auto minimize_moore (const Aut &a) -> partition_automaton< Aut >
 
template<typename Aut >
auto minimize_signature (const Aut &a) -> partition_automaton< Aut >
 
template<typename Aut >
auto minimize_weighted (const Aut &a) -> partition_automaton< Aut >
 
template<typename Aut >
std::enable_if< std::is_same
< weightset_t_of< Aut >, b >
::value &&labelset_t_of< Aut >
::is_free(),
partition_automaton< Aut >
>::type 
minimize (const Aut &a, const std::string &algo)
 
template<typename Aut >
std::enable_if< std::is_same
< weightset_t_of< Aut >, b >
::value &&!labelset_t_of< Aut >
::is_free(),
partition_automaton< Aut >
>::type 
minimize (const Aut &a, const std::string &algo)
 
template<typename Aut >
std::enable_if<!std::is_same
< weightset_t_of< Aut >, b >
::value, partition_automaton
< Aut > >::type 
minimize (const Aut &a, const std::string &algo)
 
template<typename Aut >
auto cominimize (const Aut &a, const std::string &algo) -> decltype(transpose(minimize(transpose(a), algo)))
 
template<typename Aut >
bool is_normalized (const Aut &a)
 Whether a is standard and co-standard. More...
 
template<typename Aut >
auto normalize (const Aut &a) -> decltype(copy(a))
 Normalize a automaton. More...
 
template<typename Aut >
pair_automaton< Aut > pair (const Aut &aut, bool keep_initials=false)
 
template<typename Aut >
Aut & suffix_here (Aut &aut)
 Make all accessible states initial. More...
 
template<typename Aut >
auto suffix (const Aut &aut) -> decltype(::vcsn::copy(aut))
 
template<typename Aut >
Aut & prefix_here (Aut &aut)
 Make all coaccessible states final. More...
 
template<typename Aut >
auto prefix (const Aut &aut) -> decltype(::vcsn::copy(aut))
 
template<typename Aut >
Aut & factor_here (Aut &aut)
 Make each useful state both initial and final. More...
 
template<typename Aut >
auto factor (const Aut &aut) -> decltype(::vcsn::copy(aut))
 
template<typename Aut >
Aut & subword_here (Aut &aut)
 Add spontaneous transitions for each non spontaneous transition, with same source, destination and weight. More...
 
template<typename Aut >
auto subword (const Aut &aut) -> decltype(::vcsn::copy(aut))
 Apply subword_here() to a copy of aut. More...
 
template<typename ValueSet >
std::ostream & print (const ValueSet &vs, const typename ValueSet::value_t &v, std::ostream &o, const std::string &format)
 Applies to (ValueSet, Value, ostream, string): for expansionset, polynomialset, ratexpset, and weightset. More...
 
template<typename PolynomialSet >
std::ostream & list (const PolynomialSet &ps, const typename PolynomialSet::value_t &p, std::ostream &o)
 
template<typename... Auts>
auto join_automata (Auts &&...auts) -> decltype(make_mutable_automaton(join(auts->context()...)))
 Join between automata. More...
 
template<typename... Auts>
auto meet_automata (Auts &&...auts) -> decltype(make_mutable_automaton(meet(auts->context()...)))
 Meet between automata. More...
 
template<typename Aut , typename... Auts>
auto make_product_automaton (Aut aut, const Auts &...auts) -> product_automaton< Aut, Auts...>
 
template<typename... Auts>
auto product (const Auts &...as) -> product_automaton< decltype(meet_automata(as...)), Auts...>
 Build the (accessible part of the) product. More...
 
template<typename... Auts>
auto shuffle (const Auts &...as) -> product_automaton< decltype(join_automata(as...)), Auts...>
 The (accessible part of the) shuffle product. More...
 
template<typename ValueSet >
ValueSet::value_t shuffle (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Shuffle product of ratexps. More...
 
template<typename... Auts>
auto infiltration (const Auts &...as) -> product_automaton< decltype(join_automata(as...)), Auts...>
 The (accessible part of the) infiltration product. More...
 
template<typename Aut >
auto power (const Aut &aut, unsigned n) -> typename Aut::element_type::automaton_nocv_t
 
template<typename RatExpSet >
RatExpSet::value_t conjunction (const RatExpSet &rs, const typename RatExpSet::value_t &lhs, const typename RatExpSet::value_t &rhs)
 Intersection/Hadamard product of ratexps. More...
 
template<typename Aut >
void proper_here (Aut &aut, direction dir=direction::backward, bool prune=true)
 Eliminate spontaneous transitions in place. More...
 
template<typename LabelSet , typename WeightSet >
auto proper_context (const context< LabelSet, WeightSet > &ctx) -> context< typename proper_labelset< LabelSet >::type, WeightSet >
 From a context, its non-nullable context. More...
 
template<typename Aut >
auto proper (const Aut &aut, direction dir=direction::backward, bool prune=true) -> mutable_automaton< decltype(proper_context(copy(aut) ->context()))>
 Eliminate spontaneous transitions. More...
 
template<typename Aut >
weight_t_of< Aut > shortest_distance_to_finals (Aut aut, state_t_of< Aut > s0)
 Find shorhest of s0 to the final states of aut by using single source shortest distance. More...
 
template<typename Aut >
std::unordered_map< state_t_of
< Aut >, weight_t_of< Aut > > 
shortest_distance_to_finals (Aut aut)
 Find all shortest distance of each state to the final states of aut. More...
 
template<typename Aut >
auto push_weights (const Aut &aut) -> decltype(::vcsn::copy(aut))
 The algorithm weight pushing. More...
 
template<typename Aut >
auto quotient (const Aut &a, typename detail::quotienter< Aut >::class_to_set_t &classes) -> partition_automaton< Aut >
 
template<typename RandomGenerator = std::default_random_engine>
oneset::value_t random_label (const oneset &ls, RandomGenerator &=RandomGenerator())
 
template<typename... LabelSet, typename RandomGenerator = std::default_random_engine>
tupleset< LabelSet...>::value_t random_label (const tupleset< LabelSet...> &ls, RandomGenerator &gen=RandomGenerator())
 
template<typename... LabelSet, size_t... I, typename RandomGenerator = std::default_random_engine>
tupleset< LabelSet...>::value_t random_label (const tupleset< LabelSet...> &ls, RandomGenerator &gen, detail::index_sequence< I...>)
 
template<typename LabelSet , typename RandomGenerator = std::default_random_engine>
LabelSet::value_t random_label (const LabelSet &ls, RandomGenerator &gen=RandomGenerator())
 
template<typename LabelSet , typename RandomGenerator = std::default_random_engine>
nullableset< LabelSet >::value_t random_label (const nullableset< LabelSet > &ls, RandomGenerator &gen=RandomGenerator())
 
template<typename Context , typename RandomGenerator = std::default_random_engine>
ratexpset< Context >::value_t random_label (const ratexpset< Context > &rs, RandomGenerator &gen=RandomGenerator())
 
template<typename Ctx >
mutable_automaton< Ctx > random (const Ctx &ctx, unsigned num_states, float density=0.1, unsigned num_initial=1, unsigned num_final=1)
 
template<typename Ctx >
mutable_automaton< Ctx > random_deterministic (const Ctx &ctx, unsigned num_states)
 
template<typename Context >
auto read_label (std::istream &is, const Context &ctx) -> label_t_of< Context >
 
template<typename Context >
auto read_polynomial (const Context &ctx, std::istream &is) -> typename polynomialset< Context >::value_t
 
template<typename Context >
auto read_weight (const Context &ctx, std::istream &is) -> weight_t_of< Context >
 
template<typename Aut >
auto left_reduce (const Aut &input) -> decltype(copy(input))
 
template<typename Aut >
auto reduce (const Aut &input) -> decltype(copy(input))
 
template<typename Aut >
std::stack< state_t_of< Aut > > reverse_postorder (const Aut &aut)
 Get all vertices in reverse postorder. More...
 
template<typename Aut >
const detail::components_t< Aut > scc (const Aut &aut, SCC_ALGO algo=SCC_ALGO::TARJAN)
 Find all strongly connected components of aut. More...
 
template<typename Aut >
Aut::element_type::automaton_nocv_t aut_of_component (const detail::component_t< Aut > &com, const Aut &aut)
 Generate a subautomaton corresponding to an SCC. More...
 
template<typename Aut >
std::size_t num_sccs (const Aut &aut)
 Get number of strongly connected components. More...
 
template<typename Aut >
bool is_out_sorted (const Aut &a)
 Whether for each state, the outgoing transitions are sorted by increasing label. More...
 
template<typename Aut >
auto sort (const Aut &a) -> permutation_automaton< Aut >
 
template<typename RatExpSet >
rat::ratexp_polynomial_t
< RatExpSet > 
split (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 Split a ratexp. More...
 
template<typename RatExpSet >
rat::ratexp_polynomial_t
< RatExpSet > 
split (const RatExpSet &rs, const rat::ratexp_polynomial_t< RatExpSet > &p)
 Split a polynomial of ratexps. More...
 
template<typename PolynomialSet >
PolynomialSet::value_t split_polynomial (const PolynomialSet &ps, const typename PolynomialSet::value_t &p)
 Split a polynomial of ratexps. More...
 
template<typename Aut >
bool is_standard (const Aut &a)
 Whether a is standard. More...
 
template<typename Aut >
bool is_costandard (const Aut &a)
 Whether a is costandard. More...
 
template<typename Aut >
void standard_here (Aut &aut)
 Turn aut into a standard automaton. More...
 
template<typename Aut >
auto standard (const Aut &aut) -> decltype(copy(aut))
 
template<typename Aut >
auto costandard (const Aut &aut) -> decltype(copy(aut))
 
template<typename Aut , typename RatExpSet >
Aut standard (const RatExpSet &rs, const typename RatExpSet::value_t &r)
 Build a standard automaton from a ratexp. More...
 
template<typename RatExpSet >
unsigned star_height (const typename RatExpSet::value_t &e)
 Star height of a ratexp. More...
 
template<typename RatExpSet >
RatExpSet::value_t star_normal_form (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 Star_Normal_Forming a typed ratexp shared_ptr. More...
 
template<typename Aut >
Aut & star_here (Aut &res)
 In place star of a standard automaton. More...
 
template<typename Aut >
Aut::element_type::automaton_nocv_t star (const Aut &aut)
 Star of a standard automaton. More...
 
template<typename Aut >
auto strip (const Aut &aut) -> decltype(detail::strip(aut, 0))
 Remove (all) the decorations from a decorated automaton. More...
 
template<typename A , typename B >
A & sum_here (A &res, const B &b)
 Merge transitions of b into those of res. More...
 
template<typename A , typename B >
auto sum (const A &lhs, const B &rhs) -> decltype(join_automata(lhs, rhs))
 
template<typename ValueSet >
ValueSet::value_t sum (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Sums of values. More...
 
template<typename Aut >
bool is_synchronized_by (const Aut &aut, const typename labelset_t_of< Aut >::word_t &w)
 
template<typename Aut >
bool is_synchronizing (const Aut &aut)
 
template<typename Aut >
labelset_t_of< Aut >::word_t synchronizing_word (const Aut &aut, const std::string &algo="greedy")
 
template<typename Aut , typename RatExpSet >
Aut thompson (const context_t_of< Aut > &ctx, const RatExpSet &rs, const typename RatExpSet::value_t &r)
 Build a Thompson automaton from a ratexp. More...
 
template<typename Aut , typename RatExpSet >
Aut thompson (const RatExpSet &rs, const typename RatExpSet::value_t &r)
 Build a Thompson automaton from a ratexp. More...
 
template<typename AutPtr >
std::ostream & tikz (const AutPtr &aut, std::ostream &out)
 Print automaton to TikZ format. More...
 
template<typename RatExpSet >
rat::expansionset< RatExpSet >
::value_t 
to_expansion (const RatExpSet &rs, const typename RatExpSet::value_t &e)
 First order expansion. More...
 
template<typename Aut >
state_t_of< Aut > next_naive (const Aut &a)
 
template<typename Aut >
Aut & eliminate_state_here (Aut &res, state_t_of< Aut > s)
 Remove state s from automaton res. More...
 
template<typename Aut >
Aut eliminate_state (const Aut &aut, state_t_of< Aut > s)
 A copy of automaton res without the state s. More...
 
template<typename Aut , typename RatExpSet = ratexpset<context_t_of<Aut>>>
RatExpSet::value_t to_expression (const Aut &a, const state_chooser_t< Aut > &next_state)
 
template<typename Aut , typename RatExpSet = ratexpset<context_t_of<Aut>>>
RatExpSet::value_t to_expression_naive (const Aut &a)
 
template<typename Aut >
Aut transpose (const transpose_automaton< Aut > &aut)
 
template<typename Aut >
transpose_automaton< Aut > transpose (Aut aut)
 
template<typename Context >
mutable_automaton< Context > u (const Context &ctx, unsigned n)
 The Brzozowski universal witness. More...
 
template<typename A , typename B >
A & union_here (A &res, const B &b)
 Merge transitions of b into those of res. More...
 
template<typename A , typename B >
auto union_a (const A &lhs, const B &rhs) -> decltype(join_automata(lhs, rhs))
 Union of two automata. More...
 
template<class Aut >
Aut universal (const Aut &a)
 
template<>
char_letters::letter_t char_letters::special< char_letters::letter_t > ()
 
template<>
char_letters::word_t char_letters::special< char_letters::word_t > ()
 
template<>
string_letters::letter_t string_letters::special< string_letters::letter_t > ()
 
template<>
string_letters::word_t string_letters::special< string_letters::word_t > ()
 
template<typename ValueSet >
auto join (const ValueSet &vs) -> ValueSet
 The join of a single valueset. More...
 
template<typename ValueSet1 , typename ValueSet2 , typename... VSs>
auto join (const ValueSet1 &vs1, const ValueSet2 &vs2, const VSs &...vs) -> decltype(join(detail::join_(vs1, vs2, 0), vs...))
 The join of two (or more) valuesets. More...
 
template<typename Context >
mutable_automaton< Context > make_mutable_automaton (const Context &ctx)
 
template<class RatExpSet >
RatExpSet::value_t less_than (const RatExpSet &rs, const typename RatExpSet::value_t &v)
 
template<typename Context >
ratexpset< Context > make_ratexpset (const Context &ctx, rat::identities identities)
 Shorthand to ratexpset constructor. More...
 
template<typename Ctx1 , typename Ctx2 >
auto meet (const ratexpset< Ctx1 > &a, const ratexpset< Ctx2 > &b) -> ratexpset< meet_t< Ctx1, Ctx2 >>
 The meet of two ratexpsets. More...
 
template<class RatExpSet >
RatExpSet::value_t transpose (const RatExpSet &rs, const typename RatExpSet::value_t &v)
 
template<typename... Auts>
auto make_tuple_automaton (const Auts &...auts) -> tuple_automaton< Auts...>
 
template<typename LabelSet , typename WeightSet >
context< LabelSet, WeightSetmake_context (const LabelSet &ls, const WeightSet &ws)
 Shorthand to build a context. More...
 
template<typename ValueSet >
auto meet (const ValueSet &vs) -> ValueSet
 The meet of a single valueset. More...
 
template<typename ValueSet1 , typename ValueSet2 , typename ValueSet3 , typename... VSs>
auto meet (const ValueSet1 &vs1, const ValueSet2 &vs2, const ValueSet3 &vs3, const VSs &...vs) -> decltype(meet(meet(vs1, vs2), vs3, vs...))
 
template<typename LhsLabelSet , typename LhsWeightSet , typename RhsLabelSet , typename RhsWeightSet >
auto meet (const context< LhsLabelSet, LhsWeightSet > &a, const context< RhsLabelSet, RhsWeightSet > &b) -> context< meet_t< LhsLabelSet, RhsLabelSet >, join_t< LhsWeightSet, RhsWeightSet >>
 The meet of two contexts. More...
 
 VCSN_CTX_INSTANTIATE (ctx::lal_char_b)
 
 VCSN_CTX_INSTANTIATE (ctx::lal_char_br)
 
 VCSN_CTX_INSTANTIATE (ctx::lal_char_q)
 
 VCSN_CTX_INSTANTIATE (ctx::lal_char_zr)
 
 VCSN_CTX_INSTANTIATE (ctx::lal_char_zrr)
 
 VCSN_CTX_INSTANTIATE (ctx::law_char_br)
 
 VCSN_CTX_INSTANTIATE (ctx::law_char_zr)
 
 VCSN_CTX_INSTANTIATE (ctx::law_char_zrr)
 
bool operator< (empty_t, empty_t)
 
bool operator== (empty_t, empty_t)
 
template<typename GenSet >
letterset< GenSet > meet (const letterset< GenSet > &lhs, const letterset< GenSet > &rhs)
 Compute the meet with another labelset. More...
 
template<typename GenSet >
nullableset< letterset< GenSet > > meet (const nullableset< letterset< GenSet >> &lhs, const nullableset< letterset< GenSet >> &rhs)
 Compute the meet with another labelset. More...
 
template<typename GenSet >
nullableset< letterset< GenSet > > meet (const letterset< GenSet > &lhs, const nullableset< letterset< GenSet >> &rhs)
 
template<typename GenSet >
nullableset< letterset< GenSet > > meet (const nullableset< letterset< GenSet >> &lhs, const letterset< GenSet > &rhs)
 
template<typename Lls , typename Rls >
nullableset< meet_t< Lls, Rls > > meet (const nullableset< Lls > &lhs, const nullableset< Rls > &rhs)
 
oneset meet (const oneset &, const oneset &)
 The meet of two labelsets. More...
 
template<typename GenSet >
wordset< GenSet > meet (const wordset< GenSet > &lhs, const wordset< GenSet > &rhs)
 Compute the meet with another alphabet. More...
 
template<typename... Sequences>
cross_sequences< Sequences...> cross (Sequences &&...seqs)
 
template<typename... Sequences>
cross_sequences< Sequences...> cross_tuple (const std::tuple< Sequences...> &seqs)
 
std::string to_string (direction d)
 Conversion to string. More...
 
std::istream & operator>> (std::istream &is, direction &d)
 Parsing. More...
 
std::ostream & operator<< (std::ostream &os, direction d)
 Pretty-printing. More...
 
std::ostream & str_escape (std::ostream &os, const std::string &str)
 Output a string, escaping special characters. More...
 
std::string str_escape (const std::string &c)
 Likewise, but produces a string. More...
 
std::ostream & str_escape (std::ostream &os, int c)
 Output a character, escaping special characters. More...
 
std::string str_escape (int c)
 Likewise, but produces a string. More...
 
std::ostream & operator<< (std::ostream &o, const file_library &l)
 Print l on o. More...
 
template<class T >
std::size_t hash_value (const T &v)
 
std::ostream & incindent (std::ostream &o)
 Increment the indentation. More...
 
std::ostream & decindent (std::ostream &o)
 Decrement the indentation. More...
 
std::ostream & resetindent (std::ostream &o)
 Reset the indentation. More...
 
std::ostream & indent (std::ostream &o)
 Set the indentation. More...
 
std::ostream & iendl (std::ostream &o)
 Print an end of line, then set the indentation. More...
 
std::ostream & incendl (std::ostream &o)
 Increment the indentation, print an end of line, and set the indentation. More...
 
std::ostream & decendl (std::ostream &o)
 Decrement the indentation, print an end of line, and set the indentation. More...
 
template<typename Key , typename Value , typename Compare , typename Alloc >
bool has (const std::map< Key, Value, Compare, Alloc > &s, const Key &e)
 
template<typename SharedPtr , typename... Args>
SharedPtr make_shared_ptr (Args &&...args)
 Same as std::make_shared, but parameterized by the shared_ptr type, not the (pointed to) element_type. More...
 
int address (const void *t)
 Name pointers, to make them easier to read. More...
 
template<typename T >
int address (T *t)
 
template<typename T >
int address (const T &t)
 
template<typename T >
std::string sname ()
 
template<typename T >
std::string sname (T &)
 
template<typename... Args>
signature ssignature ()
 Static signature. More...
 
template<typename T >
std::string vname (T &t)
 
template<typename... Args>
signature vsignature (Args &&...args)
 The signature of (Args...). More...
 
template<typename T >
std::pair< T, T > make_ordered_pair (T e1, T e2)
 
path absolute (const path &p)
 
bool exists (const path &p)
 
std::ostream & operator<< (std::ostream &o, const path &p)
 Dump p on o. More...
 
template<typename... Args>
ATTRIBUTE_NORETURN void raise (Args &&...args)
 Raise a runtime_error with the concatenation of args as message. More...
 
template<typename... Args>
void require (bool b, Args &&...args)
 If b is not verified, raise an error with args as message. More...
 
template<typename RandomGenerator = std::default_random_engine>
struct random_selector
< RandomGenerator > 
make_random_selector (const RandomGenerator &g) ATTRIBUTE_PURE
 
template<typename T , typename Compare , typename Alloc >
bool has (const std::set< T, Compare, Alloc > &s, const T &e) ATTRIBUTE_PURE
 Whether e is member of s. More...
 
template<typename Key , typename Value , typename Comp , typename Alloc >
std::set< typename std::map
< Key, Value, Comp, Alloc >
::mapped_type > 
image (const std::map< Key, Value, Comp, Alloc > &m)
 The set of values of a map. More...
 
template<typename T , typename Compare , typename Alloc >
std::set< T, Compare, Alloc > intersection (const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
 The intersection of two sets. More...
 
template<typename T , typename Compare , typename Alloc >
std::set< std::set< T, Compare,
Alloc > > 
intersection_closure (std::set< std::set< T, Compare, Alloc >> pset)
 The set of all the intersections of the sets in pset. More...
 
template<typename T , typename Compare , typename Alloc >
std::set< T, Compare, Alloc > get_union (const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
 The union of two sets. More...
 
template<typename T , typename Compare , typename Alloc >
std::ostream & print (const std::set< T, Compare, Alloc > &set, std::ostream &o)
 Print with a separator. Meant to help debugging. More...
 
template<typename Container1 , typename Container2 >
bool subset (const Container1 &set1, const Container2 &set2) ATTRIBUTE_PURE
 Whether set1set2. More...
 
template<typename T >
bool has (const std::set< T > &s, const T &e)
 
template<typename T >
std::set< T > intersection (const std::set< T > &set1, const std::set< T > &set2)
 
template<typename T >
std::set< std::set< T > > intersection_closure (std::set< std::set< T >> pset)
 
template<typename T >
std::set< T > get_union (const std::set< T > &set1, const std::set< T > &set2)
 
template<typename T >
std::ostream & print (const std::set< T > &set, std::ostream &o)
 
std::ostream & operator<< (std::ostream &os, const signature &sig)
 Output a string, escaping special characters. More...
 
std::string bracketed (std::istream &i, const char lbracket, const char rbracket)
 Extract the string which is here between lbracket and rbracket. More...
 
template<typename ValueSet , typename... Args>
auto conv (const ValueSet &vs, const std::string &str, Args &&...args) -> decltype(vs.conv(std::declval< std::istream & >(), std::forward< Args >(args)...))
 Parse str via vs.conv. More...
 
char eat (std::istream &is, char c)
 Check lookahead character and advance. More...
 
const std::string & eat (std::istream &is, const std::string &s)
 Check lookahead string and advance. More...
 
ATTRIBUTE_NORETURN void fail_reading (std::istream &is, std::string explanation)
 Throw an exception after failing to read from is. More...
 
template<typename ValueSet , typename... Args>
auto to_string (const ValueSet &vs, const typename ValueSet::value_t &v, Args &&...args) -> std::string
 Format v via vs.print. More...
 
std::string get_file_contents (const std::string &file)
 Return the contents of file. More...
 
std::shared_ptr< std::istream > open_input_file (const std::string &file)
 Open file for reading and return its autoclosing stream. More...
 
std::shared_ptr< std::ostream > open_output_file (const std::string &file)
 Open file for writing and return its autoclosing stream. More...
 
template<bool... B>
constexpr bool any_ ()
 Static evaluation of the 'or' of the template parameters. More...
 
template<bool... B>
constexpr bool all_ ()
 
template<typename Key , typename T , typename Hash , typename KeyEqual , typename Alloc >
size_t collision_count (const std::unordered_map< Key, T, Hash, KeyEqual, Alloc > &m)
 Sum of bucket sizes. More...
 
template<typename Key , typename T , typename Hash , typename KeyEqual , typename Alloc >
bool has (const std::unordered_map< Key, T, Hash, KeyEqual, Alloc > &m, const Key &k)
 Whether e is member of m. More...
 
template<typename Key , typename Hash , typename KeyEqual , typename Alloc >
bool has (const std::unordered_set< Key, Hash, KeyEqual, Alloc > &s, const Key &k)
 Whether e is member of s. More...
 
template<typename Key , typename Hash , typename KeyEqual , typename Alloc >
std::unordered_set< Key, Hash,
KeyEqual, Alloc > 
intersection (const std::unordered_set< Key, Hash, KeyEqual, Alloc > &s1, const std::unordered_set< Key, Hash, KeyEqual, Alloc > &s2)
 Intersection of s1 and s2. More...
 
template<typename T , typename Alloc >
ATTRIBUTE_PURE auto find (const std::vector< T, Alloc > &s, const T &e) -> typename std::vector< T, Alloc >::const_iterator
 Convenience wrapper around std::find. More...
 
template<typename T , typename Alloc >
ATTRIBUTE_PURE bool has (const std::vector< T, Alloc > &s, const T &e)
 Whether e is member of s. More...
 
std::ostream & operator<< (std::ostream &o, const iomanipulator &g)
 Launch the iomanipulator action on o. More...
 
template<typename Dereference = as_pair, typename... Maps>
zipped_maps< Dereference, Maps...> zip_maps (Maps &&...maps)
 
template<typename Dereference = as_pair, typename... Maps>
zipped_maps< Dereference, Maps...> zip_map_tuple (const std::tuple< Maps...> &maps)
 
template<typename... Sequences>
zip_sequences< Sequences...> zip (Sequences &&...seqs)
 
template<typename... Sequences>
zip_sequences< Sequences...> zip_tuple (const std::tuple< Sequences...> &seqs)
 
template<typename LabelSet >
auto label_is_zero (const LabelSet &ls, const typename LabelSet::value_t *l) -> decltype(ls.is_zero(l), bool())
 
template<typename LabelSet >
bool label_is_zero (const LabelSet &,...) ATTRIBUTE_CONST
 
template<typename Aut >
polynomialset< context_t_of
< Aut > >::value_t 
get_entry (const Aut &aut, state_t_of< Aut > s, state_t_of< Aut > d)
 The entry between two states of an automaton. More...
 

Variables

std::ostream cnull {nullptr}
 An narrow-char stream that discards the output. More...
 
std::wostream wcnull {nullptr}
 An wide-char stream that discards the output. More...
 

Typedef Documentation

Definition at line 38 of file fwd.hh.

template<typename T >
using vcsn::base_t = typedef typename std::remove_cv<typename std::remove_reference<T>::type>::type

T without reference or const/volatile qualifiers.

Definition at line 12 of file traits.hh.

template<std::size_t Tape, typename Aut >
using vcsn::blind_automaton = typedef std::shared_ptr<detail::blind_automaton_impl<Tape, Aut>>

A blind automaton as a shared pointer.

Definition at line 24 of file fwd.hh.

template<typename ValueSet >
using vcsn::context_t_of = typedef typename detail:: context_t_of_impl<base_t<ValueSet>>::type

Definition at line 32 of file traits.hh.

template<typename Aut >
using vcsn::determinized_automaton = typedef std::shared_ptr<detail::determinized_automaton_impl<Aut>>

A determinized automaton as a shared pointer.

Definition at line 239 of file determinize.hh.

template<typename Aut >
using vcsn::detweighted_automaton = typedef std::shared_ptr<detail::detweighted_automaton_impl<Aut>>

A determinized automaton as a shared pointer.

Definition at line 473 of file determinize.hh.

using vcsn::dynamic_bitset = typedef boost::dynamic_bitset<>

Definition at line 27 of file dynamic_bitset.hh.

template<bool Cond, typename T = void>
using vcsn::enable_if_t = typedef typename std::enable_if<Cond, T>::type

Definition at line 7 of file type_traits.hh.

Definition at line 39 of file fwd.hh.

template<typename Aut >
using vcsn::filter_automaton = typedef std::shared_ptr<detail::filter_automaton_impl<Aut>>

Definition at line 253 of file filter.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_lal = typedef typename std::enable_if<is_lal <Kinded>::value, R>::type

Definition at line 72 of file kind.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_lan = typedef typename std::enable_if<is_lan <Kinded>::value, R>::type

Definition at line 73 of file kind.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_lao = typedef typename std::enable_if<is_lao <Kinded>::value, R>::type

Definition at line 74 of file kind.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_lar = typedef typename std::enable_if<is_lar <Kinded>::value, R>::type

Definition at line 75 of file kind.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_lat = typedef typename std::enable_if<is_lat <Kinded>::value, R>::type

Definition at line 76 of file kind.hh.

template<typename Kinded , typename R = Kinded>
using vcsn::if_law = typedef typename std::enable_if<is_law <Kinded>::value, R>::type

Definition at line 77 of file kind.hh.

template<typename... ValueSets>
using vcsn::join_t = typedef decltype(join(std::declval<ValueSets>()...))

The type of the join of the ValueSets.

Definition at line 61 of file join.hh.

template<typename ValueSet >
using vcsn::label_t_of = typedef typename detail:: label_t_of_impl<base_t<ValueSet>>::type

Definition at line 33 of file traits.hh.

template<typename ValueSet >
using vcsn::labelset_t_of = typedef typename detail:: labelset_t_of_impl<base_t<ValueSet>>::type

Definition at line 34 of file traits.hh.

template<typename... ValueSets>
using vcsn::labelset_types = typedef detail::labelset_types<void, ValueSets...>

Definition at line 50 of file tupleset.hh.

template<typename... ValueSets>
using vcsn::meet_t = typedef decltype(meet(std::declval<ValueSets>()...))

Definition at line 172 of file context.hh.

template<typename Context >
using vcsn::mutable_automaton = typedef std::shared_ptr<detail::mutable_automaton_impl<Context>>

Definition at line 25 of file fwd.hh.

template<typename Aut >
using vcsn::pair_automaton = typedef std::shared_ptr<detail::pair_automaton_impl<Aut>>

Definition at line 207 of file pair.hh.

template<typename Aut >
using vcsn::partition_automaton = typedef std::shared_ptr<detail::partition_automaton_impl<Aut>>

A partition automaton as a shared pointer.

Definition at line 113 of file partition-automaton.hh.

template<typename Aut >
using vcsn::permutation_automaton = typedef std::shared_ptr<detail::permutation_automaton_impl<Aut>>

A permutation automaton as a shared pointer.

Definition at line 38 of file fwd.hh.

template<typename Aut , typename... Auts>
using vcsn::product_automaton = typedef std::shared_ptr<detail::product_automaton_impl<Aut, Auts...>>

A product automaton as a shared pointer.

Definition at line 424 of file product.hh.

Definition at line 40 of file fwd.hh.

Definition at line 41 of file fwd.hh.

Definition at line 42 of file fwd.hh.

template<typename Aut >
using vcsn::ratexp_automaton = typedef std::shared_ptr<detail::ratexp_automaton_impl<Aut>>

A ratexp automaton as a shared pointer.

Definition at line 51 of file fwd.hh.

template<typename Context >
using vcsn::ratexpset = typedef variadic_mul_mixin<rat::ratexpset_impl<Context>>

Definition at line 166 of file fwd.hh.

template<typename Aut , typename Lifted = detail::lifted_automaton_t<Aut>>
using vcsn::state_chooser_t = typedef std::function<state_t_of<Lifted>(const Lifted&)>

A state (inner) from an automaton.

Definition at line 20 of file to-expression.hh.

template<typename ValueSet >
using vcsn::state_t_of = typedef typename detail:: state_t_of_impl<base_t<ValueSet>>::type

Definition at line 35 of file traits.hh.

template<typename Aut >
using vcsn::states_t = typedef std::unordered_set<state_t_of<Aut>>

Definition at line 22 of file accessible.hh.

using vcsn::symbol = typedef boost::flyweight<std::string, boost::flyweights::no_tracking>

An internalized string.

Definition at line 24 of file symbol.hh.

template<typename ValueSet >
using vcsn::transition_t_of = typedef typename detail:: transition_t_of_impl<base_t<ValueSet>>::type

Definition at line 36 of file traits.hh.

template<typename Aut >
using vcsn::transpose_automaton = typedef std::shared_ptr<detail::transpose_automaton_impl<Aut>>

An automaton wrapper that presents the transposed automaton.

Definition at line 61 of file fwd.hh.

template<typename... Auts>
using vcsn::tuple_automaton = typedef std::shared_ptr<detail::tuple_automaton_impl<Auts...>>

A product automaton as a shared pointer.

Definition at line 253 of file tuple-automaton.hh.

template<typename ValueSet >
using vcsn::weight_t_of = typedef typename detail:: weight_t_of_impl<base_t<ValueSet>>::type

Definition at line 37 of file traits.hh.

template<typename ValueSet >
using vcsn::weightset_t_of = typedef typename detail:: weightset_t_of_impl<base_t<ValueSet>>::type

Definition at line 38 of file traits.hh.

Definition at line 43 of file fwd.hh.

Definition at line 44 of file fwd.hh.

Enumeration Type Documentation

enum vcsn::direction
strong

Orientation.

Enumerator
forward 

Looking downstream.

backward 

Looking upstream.

Definition at line 10 of file direction.hh.

enum vcsn::SCC_ALGO
strong
Enumerator
TARJAN 
KOSARAJU 

Definition at line 220 of file scc.hh.

Enumerator
STARRABLE 
NON_STARRABLE 
TOPS 
ABSVAL 

Definition at line 6 of file star_status.hh.

Function Documentation

path vcsn::absolute ( const path &  p)

Definition at line 104 of file path.cc.

References vcsn::path::cwd(), and vcsn::path::is_absolute().

Referenced by vcsn::file_library::push_back(), vcsn::file_library::push_current_directory(), and vcsn::file_library::push_front().

Here is the call graph for this function:

template<typename Aut >
filter_automaton<Aut> vcsn::accessible ( const Aut &  a)

Definition at line 127 of file accessible.hh.

References accessible_states(), and filter().

Referenced by vcsn::dyn::detail::accessible(), vcsn::ctx::detail::register_functions(), and useful_states().

Here is the call graph for this function:

template<typename Aut >
states_t<Aut> vcsn::accessible_states ( const Aut &  aptr)
int vcsn::address ( const void *  t)
inline

Name pointers, to make them easier to read.

Definition at line 23 of file memory.hh.

Referenced by address(), and vcsn::rat::printer< Context >::operator()().

template<typename T >
int vcsn::address ( T *  t)
inline

Definition at line 34 of file memory.hh.

References address().

Here is the call graph for this function:

template<typename T >
int vcsn::address ( const T &  t)
inline

Definition at line 41 of file memory.hh.

References address().

Here is the call graph for this function:

template<bool... B>
constexpr bool vcsn::all_ ( )

Definition at line 298 of file tuple.hh.

template<typename Aut >
labelset_t_of<Aut>::word_t vcsn::ambiguous_word ( const Aut &  aut)

Definition at line 69 of file is-ambiguous.hh.

References is_ambiguous(), path_bfs(), and require().

Referenced by vcsn::dyn::detail::ambiguous_word().

Here is the call graph for this function:

template<bool... B>
constexpr bool vcsn::any_ ( )

Static evaluation of the 'or' of the template parameters.

Definition at line 291 of file tuple.hh.

template<typename Aut1 , typename Aut2 >
auto vcsn::are_equivalent ( const Aut1 &  a1,
const Aut2 &  a2 
) -> typename std::enable_if<(labelset_t_of<Aut1>::is_free() && std::is_same<weightset_t_of<Aut1>, b>::value && labelset_t_of<Aut2>::is_free() && std::is_same<weightset_t_of<Aut2>, b>::value), bool>::type

Check equivalence between Boolean automata on a free labelset.

Check equivalence between Boolean automata on fields, or Z.

Definition at line 26 of file are-equivalent.hh.

References difference(), and is_useless().

Here is the call graph for this function:

template<typename Aut1 , typename Aut2 >
bool vcsn::are_isomorphic ( const Aut1 &  a1,
const Aut2 &  a2 
)
template<typename Aut >
Aut::element_type::automaton_nocv_t vcsn::aut_of_component ( const detail::component_t< Aut > &  com,
const Aut &  aut 
)

Generate a subautomaton corresponding to an SCC.

Definition at line 250 of file scc.hh.

References has(), and vcsn::detail::map().

Referenced by is_cycle_ambiguous().

Here is the call graph for this function:

template<unsigned Tape, typename Aut >
blind_automaton<Tape, Aut> vcsn::blind ( Aut  aut)
inline

Definition at line 336 of file blind.hh.

std::string vcsn::bracketed ( std::istream &  i,
const char  lbracket,
const char  rbracket 
)

Extract the string which is here between lbracket and rbracket.

Support nested lbracket/rbracket.

Definition at line 17 of file stream.cc.

References str_escape().

Referenced by vcsn::polynomialset< ratexpset_t >::conv().

Here is the call graph for this function:

template<typename Ctx >
mutable_automaton<Ctx> vcsn::cerny ( const Ctx &  ctx,
unsigned  num_states 
)

Cerny automata are automata whose synchronizing word length is always (n - 1)^2, the upper bound of the Cerny's conjecture.

Their transition function d(q, l) is defined by:

  • (q + 1) % n if l == a
  • q if l != a and q != n - 1
  • 0 if l != a and q == n - 1

Definition at line 25 of file cerny.hh.

References require().

Referenced by vcsn::dyn::detail::cerny(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
Aut vcsn::chain ( const Aut &  aut,
int  min,
int  max 
)

Definition at line 135 of file concatenate.hh.

References concatenate(), copy(), star(), and sum().

Referenced by vcsn::dyn::detail::chain(), chain(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::chain ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r,
int  min,
int  max 
)

Definition at line 244 of file concatenate.hh.

References chain(), and sum().

Referenced by vcsn::dyn::detail::chain_ratexp().

Here is the call graph for this function:

Definition at line 210 of file char.hh.

Definition at line 218 of file char.hh.

template<typename Aut >
filter_automaton<Aut> vcsn::coaccessible ( const Aut &  a)

Definition at line 134 of file accessible.hh.

References coaccessible_states(), and filter().

Referenced by vcsn::dyn::detail::coaccessible(), is_ambiguous(), vcsn::ctx::detail::register_functions(), and useful_states().

Here is the call graph for this function:

template<typename Aut >
states_t<Aut> vcsn::coaccessible_states ( const Aut &  a)

Definition at line 61 of file accessible.hh.

References accessible_states(), and transpose().

Referenced by coaccessible(), is_ambiguous(), is_identity(), and useful_states().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::codeterminize ( const Aut &  a) -> decltype(transpose(determinize(transpose(a))))
inline

Definition at line 256 of file determinize.hh.

References determinize(), and transpose().

Referenced by vcsn::dyn::detail::codeterminize(), and minimize_brzozowski().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::codeterminize_weighted ( const Aut &  aut) -> decltype(transpose(determinize_weighted(transpose(aut))))
inline

Definition at line 489 of file determinize.hh.

References determinize_weighted(), and transpose().

Referenced by vcsn::dyn::detail::codeterminize().

Here is the call graph for this function:

template<typename Key , typename T , typename Hash , typename KeyEqual , typename Alloc >
size_t vcsn::collision_count ( const std::unordered_map< Key, T, Hash, KeyEqual, Alloc > &  m)
inline

Sum of bucket sizes.

Definition at line 14 of file unordered_map.hh.

template<typename Aut >
auto vcsn::cominimize ( const Aut &  a,
const std::string &  algo 
) -> decltype(transpose(minimize(transpose(a), algo)))
inline

Definition at line 75 of file minimize.hh.

References minimize(), and transpose().

Referenced by vcsn::dyn::detail::cominimize().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::cominimize_brzozowski ( const Aut &  a) -> decltype(transpose(minimize_brzozowski(transpose(a))))
inline

Definition at line 27 of file minimize-brzozowski.hh.

References minimize_brzozowski(), and transpose().

Referenced by vcsn::dyn::detail::cominimize().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::complement ( const Aut &  aut) -> decltype(copy(aut))

Definition at line 52 of file complement.hh.

References complement_here(), and copy().

Referenced by vcsn::dyn::detail::complement(), difference(), and info().

Here is the call graph for this function:

template<typename Aut >
void vcsn::complement_here ( Aut &  aut)

Definition at line 21 of file complement.hh.

References has(), is_complete(), is_deterministic(), and require().

Referenced by complement().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::complete ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

Definition at line 64 of file complete.hh.

References complete_here(), and copy().

Referenced by vcsn::dyn::detail::complete(), difference(), vcsn::detail::universaler< Aut >::operator()(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::complete_here ( Aut &  aut)

Complete aut and return it.

Definition at line 17 of file complete.hh.

References has().

Referenced by complete().

Here is the call graph for this function:

template<typename Lhs , typename Rhs >
auto vcsn::compose ( Lhs &  lhs,
Rhs &  rhs 
) -> typename detail::composer<blind_automaton<1, Lhs>, blind_automaton<0, Rhs>>::automaton_t

Build the (accessible part of the) composition.

Definition at line 289 of file compose.hh.

References vcsn::detail::composer< Lhs, Rhs >::compose(), and vcsn::detail::insplit().

Referenced by vcsn::dyn::detail::compose(), and is_functional().

Here is the call graph for this function:

template<typename A , typename B >
auto vcsn::concatenate ( const A &  lhs,
const B &  rhs 
) -> decltype(join_automata(lhs, rhs))
inline

Concatenate two standard automata.

Definition at line 99 of file concatenate.hh.

References concatenate_here(), copy_into(), is_standard(), join_automata(), and require().

Referenced by chain(), vcsn::dyn::detail::concatenate(), vcsn::dyn::detail::concatenate_ratexp(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename ValueSet >
ValueSet::value_t vcsn::concatenate ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline

Concatenation/product of polynomials/ratexps.

Definition at line 208 of file concatenate.hh.

template<typename A , typename B >
A& vcsn::concatenate_here ( A &  res,
const B &  b 
)

Append automaton b to res.

Precondition
The context of res must include that of b.
both are standard.

Definition at line 31 of file concatenate.hh.

References is_standard(), and require().

Referenced by concatenate().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::conjunction ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  lhs,
const typename RatExpSet::value_t &  rhs 
)
inline

Intersection/Hadamard product of ratexps.

Definition at line 741 of file product.hh.

Referenced by vcsn::dyn::detail::conjunction_ratexp(), and info().

template<typename ValueSet , typename... Args>
auto vcsn::conv ( const ValueSet &  vs,
const std::string &  str,
Args &&...  args 
) -> decltype(vs.conv(std::declval<std::istream&>(), std::forward<Args>(args)...))
template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t, typename Pred >
AutOut vcsn::copy ( const AutIn &  input,
Pred  keep_state 
)
inline

A copy of input keeping only its states that are accepted by keep_state.

Definition at line 171 of file copy.hh.

References copy_into(), and vcsn::detail::real_context().

Referenced by vcsn::detail::absval(), chain(), complement(), complete(), vcsn::dyn::detail::copy(), copy_into(), eliminate_state(), factor(), vcsn::detail::is_valider< Aut, has_one >::is_valid_(), prefix(), proper(), push_weights(), vcsn::ctx::detail::register_functions(), right_mult(), standard(), star(), vcsn::detail::filter_automaton_impl< Aut >::strip(), subword(), and suffix().

Here is the call graph for this function:

template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut vcsn::copy ( const AutIn &  input)
inline

A copy of input.

Definition at line 186 of file copy.hh.

template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut vcsn::copy ( const AutIn &  input,
const std::set< state_t_of< AutIn >> &  keep 
)
inline

A copy of input keeping only its states that are members of std::set keep.

Definition at line 198 of file copy.hh.

References has().

Here is the call graph for this function:

template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut vcsn::copy ( const AutIn &  input,
const std::unordered_set< state_t_of< AutIn >> &  keep 
)
inline

A copy of input keeping only its states that are members of std::unordered_set keep.

Definition at line 211 of file copy.hh.

References has().

Here is the call graph for this function:

template<typename AutIn , typename AutOut , typename Pred >
void vcsn::copy_into ( const AutIn &  in,
AutOut &  out,
Pred  keep_state 
)
inline

Copy an automaton.

Precondition
AutIn <: AutOut.

Definition at line 101 of file copy.hh.

References copy().

Referenced by concatenate(), copy_into(), vcsn::dyn::detail::left_mult(), proper(), vcsn::dyn::detail::right_mult(), and union_here().

Here is the call graph for this function:

template<typename AutIn , typename AutOut >
void vcsn::copy_into ( const AutIn &  in,
AutOut &  out 
)
inline

Definition at line 110 of file copy.hh.

References copy_into().

Referenced by copy(), and vcsn::dyn::detail::copy_convert().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::costandard ( const Aut &  aut) -> decltype(copy(aut))

Definition at line 130 of file standard.hh.

References standard(), and transpose().

Referenced by normalize().

Here is the call graph for this function:

template<typename InAut , typename OutAut >
void vcsn::create_states_and_trans_ ( const InAut &  aut,
OutAut &  naut1,
OutAut &  naut2 
)

Create states and the transitions two new automata naut1 and naut2 with weight of transition <(w, one)> and <(one, w)> corresponding with the weight of transition <w> of aut.

Definition at line 103 of file has-twins-property.hh.

Referenced by has_twins_property().

template<typename... Sequences>
cross_sequences<Sequences...> vcsn::cross ( Sequences &&...  seqs)

Definition at line 248 of file cross.hh.

Referenced by vcsn::tupleset< LabelSets >::genset_().

template<typename... Sequences>
cross_sequences<Sequences...> vcsn::cross_tuple ( const std::tuple< Sequences...> &  seqs)

Definition at line 255 of file cross.hh.

template<typename Aut >
bool vcsn::cycle_identity ( const detail::component_t< Aut > &  c,
const Aut &  aut 
)

Check the weight of two states on this component is unique.

Definition at line 87 of file has-twins-property.hh.

References vcsn::detail::cycle_identity_impl< Aut >::check().

Referenced by has_twins_property().

Here is the call graph for this function:

template<typename Context >
mutable_automaton<Context> vcsn::de_bruijn ( const Context &  ctx,
unsigned  n 
)

Definition at line 18 of file de-bruijn.hh.

References require().

Referenced by vcsn::ctx::detail::register_functions_is_free(), and vcsn::ctx::detail::register_kind_functions().

Here is the call graph for this function:

std::ostream & vcsn::decendl ( std::ostream &  o)

Decrement the indentation, print an end of line, and set the indentation.

Definition at line 59 of file indent.cc.

References decindent(), and iendl().

Referenced by vcsn::rat::printer< Context >::operator()(), and vcsn::rat::to_expansion_visitor< RatExpSet >::to_expansion().

Here is the call graph for this function:

std::ostream & vcsn::decindent ( std::ostream &  o)

Decrement the indentation.

Definition at line 27 of file indent.cc.

References vcsn::detail::indentation.

Referenced by decendl().

template<typename RatExpSet >
rat::ratexp_polynomial_t<RatExpSet> vcsn::derivation ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e,
label_t_of< RatExpSet >  a,
bool  breaking = false 
)
inline

Derive a ratexp wrt to a letter.

Definition at line 201 of file derivation.hh.

References split().

Referenced by derivation(), vcsn::dyn::detail::derivation(), vcsn::ctx::detail::register_functions_is_free(), and vcsn::detail::derived_termer< RatExpSet >::via_derivation().

Here is the call graph for this function:

template<typename RatExpSet >
rat::ratexp_polynomial_t<RatExpSet> vcsn::derivation ( const RatExpSet &  rs,
const rat::ratexp_polynomial_t< RatExpSet > &  p,
label_t_of< RatExpSet >  a,
bool  breaking = false 
)
inline

Derive a polynomial of ratexps wrt to a letter.

Definition at line 220 of file derivation.hh.

References derivation(), and vcsn::rat::make_ratexp_polynomialset().

Here is the call graph for this function:

template<typename RatExpSet >
rat::ratexp_polynomial_t<RatExpSet> vcsn::derivation ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e,
const typename RatExpSet::labelset_t::word_t &  l,
bool  breaking = false 
)
inline

Derive a ratexp wrt to a word.

Definition at line 239 of file derivation.hh.

References derivation(), and require().

Here is the call graph for this function:

template<typename RatExpSet >
ratexp_automaton<mutable_automaton<typename RatExpSet::context_t> > vcsn::derived_term_derivation ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r,
bool  breaking = false 
)
inline

The derived-term automaton, computed by derivation.

Definition at line 146 of file derived-term.hh.

References vcsn::detail::derived_termer< RatExpSet >::via_derivation().

Referenced by vcsn::dyn::detail::derived_term().

Here is the call graph for this function:

template<typename RatExpSet >
ratexp_automaton<mutable_automaton<typename RatExpSet::context_t> > vcsn::derived_term_expansion ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r,
bool  breaking = false 
)
inline

The derived-term automaton, computed by expansion.

Definition at line 158 of file derived-term.hh.

References vcsn::detail::derived_termer< RatExpSet >::via_expansion().

Referenced by vcsn::dyn::detail::derived_term().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::determinize ( const Aut &  a) -> determinized_automaton<Aut>
inline
template<typename Aut >
auto vcsn::determinize_weighted ( const Aut &  a) -> detweighted_automaton<Aut>
inline

Definition at line 478 of file determinize.hh.

Referenced by codeterminize_weighted(), and vcsn::dyn::detail::determinize().

template<typename Lhs , typename Rhs >
Lhs::element_type::automaton_nocv_t vcsn::difference ( const Lhs &  lhs,
const Rhs &  rhs 
)

An automaton that computes weights of lhs, but not by rhs.

Definition at line 82 of file are-equivalent.hh.

References complement(), complete(), determinize(), is_complete(), is_deterministic(), product(), and strip().

Referenced by are_equivalent(), and vcsn::dyn::detail::difference().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::difference ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  lhs,
const typename RatExpSet::value_t &  rhs 
)
inline

Difference of ratexps.

Definition at line 120 of file are-equivalent.hh.

template<typename Context >
mutable_automaton<Context> vcsn::divkbaseb ( const Context &  ctx,
unsigned  divisor,
unsigned  base 
)

Build the Boolean automaton which accepts a word n representing a number in base "base" if and only if divisor|n.

Definition at line 18 of file divkbaseb.hh.

References require(), and vcsn::rat::to_string().

Referenced by vcsn::dyn::detail::divkbaseb(), vcsn::ctx::detail::register_functions_is_free(), and vcsn::ctx::detail::register_kind_functions().

Here is the call graph for this function:

template<typename Aut >
std::ostream& vcsn::dot ( const Aut &  aut,
std::ostream &  out,
bool  dot2tex = false 
)
template<class Context >
mutable_automaton<Context> vcsn::double_ring ( const Context &  ctx,
unsigned  n,
const std::vector< unsigned > &  finals 
)

Definition at line 17 of file double-ring.hh.

References require().

Referenced by vcsn::dyn::detail::double_ring(), vcsn::ctx::detail::register_functions_is_free(), and vcsn::ctx::detail::register_kind_functions().

Here is the call graph for this function:

char vcsn::eat ( std::istream &  is,
char  c 
)

Check lookahead character and advance.

Parameters
isthe stream to read.
cthe expected character.
Returns
c
Exceptions
std::runtime_errorif the next character is not c.

Definition at line 37 of file stream.cc.

References require(), and str_escape().

Referenced by vcsn::ast::context_parser::any_(), vcsn::ast::context_parser::automaton_(), vcsn::ast::context_parser::context_(), vcsn::detail::q_impl::conv(), vcsn::tupleset< LabelSets >::conv(), vcsn::detail::genset_labelset< GenSet >::convs_(), vcsn::tupleset< LabelSets >::eat_separator_(), vcsn::ast::context_parser::labelset_(), vcsn::detail::nullable_helper< LabelSet >::make(), vcsn::detail::zmin_impl::make(), vcsn::detail::z_impl::make(), vcsn::detail::rmin_impl::make(), vcsn::detail::f2_impl::make(), vcsn::detail::b_impl::make(), vcsn::detail::q_impl::make(), vcsn::detail::r_impl::make(), vcsn::detail::qmp_impl::make(), vcsn::set_alphabet< L >::make(), vcsn::wordset< GenSet >::make(), vcsn::letterset< GenSet >::make(), vcsn::rat::ratexpset_impl< Context >::make(), vcsn::detail::nullable_helper< letterset< GenSet > >::make(), vcsn::context< LabelSet, WeightSet >::make(), vcsn::tupleset< LabelSets >::make(), vcsn::polynomialset< ratexpset_t >::make(), vcsn::nullableset< LabelSet >::make_nullableset_kind(), operator>>(), vcsn::rat::operator>>(), vcsn::ast::context_parser::polynomialset_(), vcsn::ast::context_parser::ratexpset_(), vcsn::ast::context_parser::ratexpset_series_(), and vcsn::ast::context_parser::tupleset_().

Here is the call graph for this function:

const std::string & vcsn::eat ( std::istream &  is,
const std::string &  s 
)

Check lookahead string and advance.

Parameters
isthe stream to read.
sthe expected string.
Returns
s
Exceptions
std::runtime_errorif the next character is not s.

Definition at line 46 of file stream.cc.

References require(), and str_escape().

Here is the call graph for this function:

template<typename Aut >
std::ostream& vcsn::efsm ( const Aut &  aut,
std::ostream &  out 
)

Format automaton to EFSM format, based on FSM format.

Template Parameters
Autan automaton type.

Definition at line 301 of file efsm.hh.

Referenced by vcsn::ctx::detail::register_functions().

template<typename Aut >
Aut vcsn::eliminate_state ( const Aut &  aut,
state_t_of< Aut >  s 
)

A copy of automaton res without the state s.

Definition at line 223 of file to-expression.hh.

References copy(), and eliminate_state_here().

Referenced by vcsn::dyn::detail::eliminate_state(), eliminate_state_here(), and vcsn::ctx::detail::register_kind_functions().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::eliminate_state_here ( Aut &  res,
state_t_of< Aut >  s 
)

Remove state s from automaton res.

Definition at line 211 of file to-expression.hh.

References eliminate_state(), vcsn::detail::make_state_eliminator(), and next_naive().

Referenced by eliminate_state().

Here is the call graph for this function:

template<typename Automaton >
detail::enumerater<Automaton>::polynomial_t vcsn::enumerate ( const Automaton &  aut,
unsigned  max 
)
inline

Definition at line 132 of file enumerate.hh.

References vcsn::detail::enumerater< Aut >::enumerate().

Referenced by vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::eval ( const Aut &  a,
const typename labelset_t_of< Aut >::word_t &  w 
) -> weight_t_of<Aut>
inline

Definition at line 85 of file eval.hh.

Referenced by vcsn::ctx::detail::register_functions_is_free().

bool vcsn::exists ( const path &  p)

Definition at line 98 of file path.cc.

References vcsn::path::c_str().

Referenced by vcsn::file_library::find_file(), and vcsn::file_library::find_in_search_path().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::expand ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)

Expanding a typed ratexp shared_ptr.

Definition at line 152 of file expand.hh.

Referenced by vcsn::ctx::detail::register_functions(), and vcsn::detail::derived_termer< RatExpSet >::via_expansion().

template<typename Aut >
auto vcsn::factor ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

Definition at line 120 of file prefix.hh.

References copy(), and factor_here().

Referenced by vcsn::dyn::detail::factor().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::factor_here ( Aut &  aut)

Make each useful state both initial and final.

Definition at line 105 of file prefix.hh.

References useful_states().

Referenced by factor().

Here is the call graph for this function:

template<typename Aut >
std::ostream& vcsn::fado ( const Aut &  aut,
std::ostream &  out 
)

Definition at line 223 of file grail.hh.

void vcsn::fail_reading ( std::istream &  is,
std::string  explanation 
)

Throw an exception after failing to read from is.

Reset the stream to a "good" state, and read the presumably ill-formed input into a buffer string; then throw with the given explanation followed by the buffer string. explanation should not contain trailing punctuation or spaces.

Definition at line 107 of file stream.cc.

References str_escape().

Referenced by vcsn::ast::check_eof(), vcsn::detail::min_plus_impl< int >::conv(), vcsn::detail::b_impl::conv(), vcsn::detail::f2_impl::conv(), vcsn::detail::z_impl::conv(), vcsn::detail::r_impl::conv(), vcsn::detail::q_impl::conv(), operator>>(), and vcsn::rat::operator>>().

Here is the call graph for this function:

template<typename Aut >
filter_automaton<Aut> vcsn::filter ( const Aut &  aut,
const std::unordered_set< state_t_of< Aut >> &  ss 
)
inline

Get an automaton who is a part state set ss of aut.

Definition at line 259 of file filter.hh.

Referenced by accessible(), coaccessible(), vcsn::dyn::detail::filter(), and trim().

template<typename T , typename Alloc >
ATTRIBUTE_PURE auto vcsn::find ( const std::vector< T, Alloc > &  s,
const T &  e 
) -> typename std::vector<T, Alloc>::const_iterator
template<typename Aut >
polynomialset<context_t_of<Aut> >::value_t vcsn::get_entry ( const Aut &  aut,
state_t_of< Aut >  s,
state_t_of< Aut >  d 
)

The entry between two states of an automaton.

Definition at line 777 of file polynomialset.hh.

Referenced by vcsn::detail::outputter< Aut >::print_entry_().

std::string vcsn::get_file_contents ( const std::string &  file)

Return the contents of file.

Definition at line 63 of file stream.cc.

References require().

Here is the call graph for this function:

template<typename T , typename Compare , typename Alloc >
std::set<T, Compare, Alloc> vcsn::get_union ( const std::set< T, Compare, Alloc > &  set1,
const std::set< T, Compare, Alloc > &  set2 
)
template<typename T >
std::set<T> vcsn::get_union ( const std::set< T > &  set1,
const std::set< T > &  set2 
)
inline

Definition at line 62 of file set.hxx.

template<typename Aut >
std::ostream& vcsn::grail ( const Aut &  aut,
std::ostream &  out 
)

Definition at line 313 of file grail.hh.

template<typename T >
bool vcsn::has ( const std::set< T > &  s,
const T &  e 
)
inline

Definition at line 8 of file set.hxx.

template<typename Key , typename T , typename Hash , typename KeyEqual , typename Alloc >
bool vcsn::has ( const std::unordered_map< Key, T, Hash, KeyEqual, Alloc > &  m,
const Key &  k 
)
inline

Whether e is member of m.

Definition at line 27 of file unordered_map.hh.

template<typename Key , typename Value , typename Compare , typename Alloc >
bool vcsn::has ( const std::map< Key, Value, Compare, Alloc > &  s,
const Key &  e 
)
inline

Definition at line 35 of file map.hh.

Referenced by vcsn::detail::filter_automaton_impl< Aut >::all_in(), vcsn::detail::filter_automaton_impl< Aut >::all_out(), vcsn::detail::filter_automaton_impl< Aut >::all_states(), vcsn::detail::filter_automaton_impl< Aut >::all_transitions(), vcsn::ast::context_parser::any_(), aut_of_component(), vcsn::detail::cycle_identity_impl< Aut >::check(), complement_here(), complete_here(), copy(), vcsn::detail::scc_tarjan_impl< Aut >::dfs(), vcsn::detail::reverse_postorder_impl< Aut >::dfs(), vcsn::detail::scc_kosaraju_impl< Aut >::dfs(), vcsn::set_alphabet< L >::has(), vcsn::detail::filter_automaton_impl< Aut >::has_state(), intersection(), is_ambiguous(), is_identity(), vcsn::are_isomorphicer< Aut1, Aut2 >::is_isomorphism_valid_throwing(), vcsn::ast::context_parser::labelset_or_weightset_(), vcsn::rat::ratexpset_impl< Context >::letter_class_(), num_accessible_states(), num_useful_states(), vcsn::detail::detweighted_automaton_impl< Aut >::operator()(), vcsn::detail::dotter< Aut >::print_state_(), vcsn::detail::filter_automaton_impl< Aut >::print_state_name(), vcsn::detail::dotter< Aut >::print_transitions_(), vcsn::detail::reverse_postorder_impl< Aut >::reverse_postorder_impl(), vcsn::detail::scc_kosaraju_impl< Aut >::scc_kosaraju_impl(), vcsn::detail::scc_tarjan_impl< Aut >::scc_tarjan_impl(), ss_shortest_distance(), vcsn::detail::filter_automaton_impl< Aut >::state_has_name(), vcsn::detail::tuple_automaton_impl< Aut, Auts...>::state_has_name(), vcsn::detail::ratexp_automaton_impl< Aut >::state_has_name(), vcsn::detail::pair_automaton_impl< Aut >::state_has_name(), vcsn::detail::determinized_automaton_impl< Aut >::state_has_name(), vcsn::detail::detweighted_automaton_impl< Aut >::state_has_name(), vcsn::rat::standard_visitor< Aut, RatExpSet >::VCSN_RAT_VISIT(), vcsn::ast::context_parser::weightset_(), and vcsn::detail::universaler< Aut >::work_().

template<typename T , typename Compare , typename Alloc >
bool vcsn::has ( const std::set< T, Compare, Alloc > &  s,
const T &  e 
)

Whether e is member of s.

template<typename Key , typename Hash , typename KeyEqual , typename Alloc >
bool vcsn::has ( const std::unordered_set< Key, Hash, KeyEqual, Alloc > &  s,
const Key &  k 
)

Whether e is member of s.

Definition at line 38 of file unordered_set.hh.

template<typename T , typename Alloc >
ATTRIBUTE_PURE bool vcsn::has ( const std::vector< T, Alloc > &  s,
const T &  e 
)

Whether e is member of s.

Definition at line 76 of file vector.hh.

References find().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::has_twins_property ( const Aut &  aut)

Whether aut has the twins property.

Definition at line 133 of file has-twins-property.hh.

References create_states_and_trans_(), cycle_identity(), is_cycle_ambiguous(), make_context(), make_mutable_automaton(), product(), require(), scc(), and trim().

Here is the call graph for this function:

std::ostream & vcsn::iendl ( std::ostream &  o)

Print an end of line, then set the indentation.

Definition at line 49 of file indent.cc.

References indent().

Referenced by decendl(), incendl(), vcsn::rat::to_expansion_visitor< RatExpSet >::to_expansion(), and vcsn::ast::context_printer::visit().

Here is the call graph for this function:

template<typename Key , typename Value , typename Comp , typename Alloc >
std::set< typename std::map< Key, Value, Comp, Alloc >::mapped_type > vcsn::image ( const std::map< Key, Value, Comp, Alloc > &  m)
inline

The set of values of a map.

Definition at line 16 of file set.hxx.

Referenced by vcsn::detail::universaler< Aut >::work_().

template<typename Aut >
bool vcsn::in_situ_remover ( Aut &  aut,
bool  prune 
)
inline

Blindly eliminate epsilon transitions without checking for the validity of the automaton.

Return true iff the process worked.

Definition at line 542 of file proper.hh.

References vcsn::detail::properer< Aut, has_one >::in_situ_remover().

Referenced by vcsn::detail::is_properable().

Here is the call graph for this function:

std::ostream & vcsn::incendl ( std::ostream &  o)

Increment the indentation, print an end of line, and set the indentation.

Definition at line 54 of file indent.cc.

References iendl(), and incindent().

Referenced by vcsn::rat::printer< Context >::operator()(), vcsn::rat::to_expansion_visitor< RatExpSet >::to_expansion(), and vcsn::ast::context_printer::visit().

Here is the call graph for this function:

std::ostream & vcsn::incindent ( std::ostream &  o)

Increment the indentation.

Definition at line 21 of file indent.cc.

References vcsn::detail::indentation.

Referenced by incendl().

std::ostream & vcsn::indent ( std::ostream &  o)

Set the indentation.

Definition at line 40 of file indent.cc.

References vcsn::detail::indentation.

Referenced by iendl().

template<typename... Auts>
auto vcsn::infiltration ( const Auts &...  as) -> product_automaton<decltype(join_automata(as...)), Auts...>
inline

The (accessible part of the) infiltration product.

Definition at line 617 of file product.hh.

References join_automata(), and make_product_automaton().

Referenced by vcsn::dyn::detail::infiltration(), vcsn::dyn::detail::infiltration_(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<class RatExpSet >
void vcsn::info ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e,
std::ostream &  o 
)

Definition at line 285 of file info.hh.

References complement(), conjunction(), DEFINE, shuffle(), star(), and sum().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::insplit ( const Aut &  aut) -> decltype(detail::insplit(aut))
inline

Definition at line 120 of file insplit.hh.

References vcsn::detail::insplit().

Referenced by vcsn::dyn::detail::insplit(), and is_functional().

Here is the call graph for this function:

template<typename T >
std::set<T> vcsn::intersection ( const std::set< T > &  set1,
const std::set< T > &  set2 
)
inline

Definition at line 28 of file set.hxx.

template<typename Key , typename Hash , typename KeyEqual , typename Alloc >
std::unordered_set<Key, Hash, KeyEqual, Alloc> vcsn::intersection ( const std::unordered_set< Key, Hash, KeyEqual, Alloc > &  s1,
const std::unordered_set< Key, Hash, KeyEqual, Alloc > &  s2 
)

Intersection of s1 and s2.

Definition at line 46 of file unordered_set.hh.

References has(), and intersection().

Here is the call graph for this function:

template<typename T , typename Compare , typename Alloc >
std::set<T, Compare, Alloc> vcsn::intersection ( const std::set< T, Compare, Alloc > &  set1,
const std::set< T, Compare, Alloc > &  set2 
)

The intersection of two sets.

Referenced by intersection(), intersection_closure(), meet(), and useful_states().

template<typename T >
std::set<std::set<T> > vcsn::intersection_closure ( std::set< std::set< T >>  pset)
inline

Definition at line 42 of file set.hxx.

References intersection().

Here is the call graph for this function:

template<typename T , typename Compare , typename Alloc >
std::set<std::set<T, Compare, Alloc> > vcsn::intersection_closure ( std::set< std::set< T, Compare, Alloc >>  pset)

The set of all the intersections of the sets in pset.

Referenced by vcsn::detail::universaler< Aut >::work_().

template<typename Aut >
bool vcsn::is_accessible ( const Aut &  a)

Definition at line 163 of file accessible.hh.

References num_accessible_states().

Referenced by vcsn::are_isomorphicer< Aut1, Aut2 >::get_full_response().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_ambiguous ( const Aut &  aut,
std::tuple< state_t_of< Aut >, state_t_of< Aut >> &  witness 
)

Whether an automaton is ambiguous.

Parameters
[in]autthe automaton
[out]witnessif ambiguous, a pair of "ambiguous" states.
Returns
whether ambiguous.

Definition at line 23 of file is-ambiguous.hh.

References coaccessible(), coaccessible_states(), has(), and product().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_ambiguous ( const Aut &  aut)
template<typename Aut >
bool vcsn::is_coaccessible ( const Aut &  a)

Definition at line 169 of file accessible.hh.

References num_coaccessible_states().

Here is the call graph for this function:

template<class Aut >
bool vcsn::is_codeterministic ( const Aut &  aut)
inline

Whether the transpositive automaton is deterministic.

Definition at line 74 of file is-deterministic.hh.

References is_deterministic(), and transpose().

Referenced by vcsn::detail_info::is_codeterministic().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_complete ( const Aut &  aut)
template<typename Aut >
bool vcsn::is_costandard ( const Aut &  a)

Whether a is costandard.

Definition at line 40 of file standard.hh.

References is_standard(), and transpose().

Referenced by is_normalized().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_cycle_ambiguous ( const Aut &  aut)

Whether aut is cycle-ambiguous.

Definition at line 121 of file is-ambiguous.hh.

References aut_of_component(), is_cycle_ambiguous_scc(), and scc().

Referenced by has_twins_property(), and vcsn::detail_info::is_cycle_ambiguous().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_cycle_ambiguous_scc ( const Aut &  aut)

Whether aut is cycle-ambiguous.

Precondition: aut is a strongly connected component.

Definition at line 148 of file is-ambiguous.hh.

References product(), and scc().

Referenced by is_cycle_ambiguous().

Here is the call graph for this function:

template<class Aut >
bool vcsn::is_deterministic ( const Aut &  aut)
inline

Whether has at most an initial state, and all its states are deterministic.

Definition at line 57 of file is-deterministic.hh.

References is_deterministic().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_empty ( const Aut &  a)

Definition at line 178 of file accessible.hh.

Referenced by info(), and vcsn::ctx::detail::register_functions().

template<typename Aut >
ATTRIBUTE_CONST bool vcsn::is_eps_acyclic ( const Aut &  aut)
template<typename Aut >
bool vcsn::is_functional ( const Aut &  aut)

Whether aut is functional.

Precondition
aut is a transducer.

Definition at line 81 of file is-functional.hh.

References vcsn::detail::composer< Lhs, Rhs >::compose(), compose(), insplit(), and is_identity().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_identity ( const Aut &  aut)

Whether transducer aut is equivalent to the identity function on all successful path.

This automaton is expected to be two-tape, both tapes having the same labelset.

Words of the k-tape automaton: k-tuples of words.

Common labelset for both tapes.

Residue of input and output path of states by eliminate longest common prefix.

Definition at line 26 of file is-functional.hh.

References coaccessible_states(), has(), and vcsn::detail::make_wordset().

Referenced by is_functional().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_normalized ( const Aut &  a)

Whether a is standard and co-standard.

Definition at line 13 of file normalize.hh.

References is_costandard(), and is_standard().

Referenced by info(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_out_sorted ( const Aut &  a)
inline

Whether for each state, the outgoing transitions are sorted by increasing label.

Definition at line 31 of file sort.hh.

References vcsn::detail::is_sorted().

Referenced by vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_proper ( const Aut &  aut)

Test whether an automaton is proper.

An automaton is proper iff it contains no epsilon-transition.

Parameters
autThe tested automaton
Returns
true iff the automaton is proper

Definition at line 49 of file is-proper.hh.

References vcsn::detail::is_proper_().

Referenced by info(), vcsn::detail::is_valider< Aut, has_one >::is_valid_(), vcsn::detail::properer< Aut, has_one >::proper_here(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_standard ( const Aut &  a)
template<typename Aut >
bool vcsn::is_synchronized_by ( const Aut &  aut,
const typename labelset_t_of< Aut >::word_t &  w 
)

Definition at line 37 of file synchronizing-word.hh.

References require().

Referenced by vcsn::dyn::detail::is_synchronized_by(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_synchronizing ( const Aut &  aut)

Definition at line 387 of file synchronizing-word.hh.

References vcsn::detail::synchronizer< Aut >::is_synchronizing().

Referenced by vcsn::detail_info::is_synchronizing(), vcsn::dyn::detail::is_synchronizing(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_trim ( const Aut &  a)

Definition at line 151 of file accessible.hh.

References num_useful_states().

Referenced by info(), vcsn::detail_moore::minimizer< Aut >::minimizer(), vcsn::detail_weighted::minimizer< Aut >::minimizer(), vcsn::detail_signature::minimizer< Aut >::minimizer(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_useless ( const Aut &  a)

Definition at line 157 of file accessible.hh.

References num_useful_states().

Referenced by are_equivalent(), info(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
bool vcsn::is_valid ( const Aut &  aut)
inline

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

References vcsn::detail::is_valider< Aut, has_one >::is_valid().

Referenced by info(), vcsn::dyn::detail::is_valid_ratexp(), vcsn::detail::properer< Aut, has_one >::proper_here_(), vcsn::ctx::detail::register_functions(), and vcsn::rat::ratexpset_impl< Context >::star().

Here is the call graph for this function:

template<typename RatExpSet >
bool vcsn::is_valid ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)

Whether e has only computable stars.

Definition at line 18 of file is-valid-ratexp.hh.

References constant_term().

Here is the call graph for this function:

template<typename ValueSet1 , typename ValueSet2 , typename... VSs>
auto vcsn::join ( const ValueSet1 &  vs1,
const ValueSet2 &  vs2,
const VSs &...  vs 
) -> decltype(join(detail::join_(vs1, vs2, 0), vs...))

The join of two (or more) valuesets.

Definition at line 53 of file join.hh.

References join(), and vcsn::detail::join_().

Referenced by vcsn::detail::join_().

Here is the call graph for this function:

template<typename... Auts>
auto vcsn::join_automata ( Auts &&...  auts) -> decltype(make_mutable_automaton(join(auts->context()...)))

Join between automata.

Definition at line 24 of file product.hh.

References join(), and make_mutable_automaton().

Referenced by concatenate(), infiltration(), shuffle(), sum(), and union_a().

Here is the call graph for this function:

template<typename WeightSet , typename RatExpSet >
ratexpset<context<labelset_t_of<RatExpSet>, join_t<WeightSet, weightset_t_of<RatExpSet> > > > vcsn::join_weightset_ratexpset ( const WeightSet ws,
const RatExpSet &  rs 
)

Join between a ratexpset and a weightset.

We must not perform a plain

join(w1.weightset(), r1.ratexpset())

here. Consider for instance

ratexpset<lal(abc), ratexpset<law(xyz), b>>

we would perform

join(ratexpset<law(xyz), b>, ratexpset<lal(abc), ratexpset<law(xyz), b>>)

i.e., a join of contexts which applies to both labelsets (here, join(lal(abc), "law(xyz)) = law(abcxyz)") and weightsets. Here, the "ratexpset<law(xyz), b>" must really be considered as a weightset, so compute the join of weightsets by hand, and leave the labelset alone.

Definition at line 165 of file left-mult.hh.

References join(), make_context(), and make_ratexpset().

Referenced by vcsn::dyn::detail::left_mult_ratexp(), and vcsn::dyn::detail::right_mult_ratexp().

Here is the call graph for this function:

template<typename LabelSet >
auto vcsn::label_is_zero ( const LabelSet ls,
const typename LabelSet::value_t *  l 
) -> decltype(ls.is_zero(l), bool())

Definition at line 31 of file polynomialset.hh.

Referenced by vcsn::polynomialset< ratexpset_t >::add_here().

template<typename LabelSet >
bool vcsn::label_is_zero ( const LabelSet ,
  ... 
)

Definition at line 46 of file polynomialset.hh.

template<class Context >
mutable_automaton<Context> vcsn::ladybird ( const Context &  ctx,
unsigned  n 
)

Definition at line 16 of file ladybird.hh.

References require().

Referenced by vcsn::dyn::detail::ladybird(), vcsn::ctx::detail::register_functions_is_free(), and vcsn::ctx::detail::register_kind_functions().

Here is the call graph for this function:

template<typename AutIn , typename AutOut = typename AutIn::element_type::automaton_nocv_t>
AutOut vcsn::left_mult ( const weight_t_of< AutOut > &  w,
const AutIn &  aut 
)
inline

Definition at line 91 of file left-mult.hh.

References left_mult_here().

Referenced by vcsn::dyn::detail::left_mult_ratexp(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::left_mult ( const RatExpSet &  rs,
const weight_t_of< RatExpSet > &  w,
const typename RatExpSet::value_t &  r 
)
inline

Definition at line 135 of file left-mult.hh.

template<typename Aut >
Aut& vcsn::left_mult_here ( const weight_t_of< Aut > &  w,
Aut &  res 
)
inline

Definition at line 82 of file left-mult.hh.

References vcsn::detail::standard_operations< Aut >::left_mult_here().

Referenced by left_mult(), and vcsn::dyn::detail::left_mult().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::left_reduce ( const Aut &  input) -> decltype(copy(input))

Definition at line 600 of file reduce.hh.

Referenced by reduce().

template<typename Aut >
detail::lifted_automaton_t<Aut> vcsn::lift ( const Aut &  a)
inline

Definition at line 77 of file lift.hh.

References vcsn::detail::lift_context(), and vcsn::detail::map().

Referenced by vcsn::dyn::detail::lift_automaton(), vcsn::dyn::detail::lift_ratexp(), and to_expression().

Here is the call graph for this function:

template<typename RatExpSet >
detail::lifted_ratexpset_t<RatExpSet>::value_t vcsn::lift ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)
inline

Definition at line 145 of file lift.hh.

References vcsn::detail::lift_ratexpset().

Here is the call graph for this function:

template<typename PolynomialSet >
std::ostream& vcsn::list ( const PolynomialSet &  ps,
const typename PolynomialSet::value_t &  p,
std::ostream &  o 
)
inline

Definition at line 106 of file print.hh.

Referenced by vcsn::dyn::detail::list_polynomial().

template<typename Ctx >
Ctx vcsn::make_context ( const std::string &  name)

Definition at line 22 of file make-context.hh.

References is, and str_escape().

Referenced by has_twins_property(), join_weightset_ratexpset(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename LabelSet , typename WeightSet >
context<LabelSet, WeightSet> vcsn::make_context ( const LabelSet ls,
const WeightSet ws 
)

Shorthand to build a context.

Definition at line 160 of file context.hh.

template<typename Context >
mutable_automaton<Context> vcsn::make_mutable_automaton ( const Context &  ctx)
template<typename T >
std::pair<T, T> vcsn::make_ordered_pair ( e1,
e2 
)

Definition at line 36 of file pair.hh.

Referenced by vcsn::detail::pair_automaton_impl< Aut >::state_().

template<typename Aut , typename... Auts>
auto vcsn::make_product_automaton ( Aut  aut,
const Auts &...  auts 
) -> product_automaton<Aut, Auts...>
inline

Definition at line 429 of file product.hh.

Referenced by infiltration(), product(), and shuffle().

template<typename RandomGenerator = std::default_random_engine>
struct random_selector< RandomGenerator > vcsn::make_random_selector ( const RandomGenerator &  g)

Definition at line 65 of file random.hh.

Referenced by random_label().

template<typename Context >
ratexpset<Context> vcsn::make_ratexpset ( const Context &  ctx,
rat::identities  identities 
)

Shorthand to ratexpset constructor.

Definition at line 471 of file ratexpset.hh.

Referenced by join_weightset_ratexpset(), and vcsn::ctx::detail::register_functions().

template<typename SharedPtr , typename... Args>
SharedPtr vcsn::make_shared_ptr ( Args &&...  args)
inline

Same as std::make_shared, but parameterized by the shared_ptr type, not the (pointed to) element_type.

Definition at line 15 of file memory.hh.

template<typename... Auts>
auto vcsn::make_tuple_automaton ( const Auts &...  auts) -> tuple_automaton<Auts...>
inline

Definition at line 258 of file tuple-automaton.hh.

template<typename ValueSet >
auto vcsn::meet ( const ValueSet &  vs) -> ValueSet

The meet of a single valueset.

Useful for variadic operator on a single argument.

Definition at line 183 of file context.hh.

template<typename ValueSet1 , typename ValueSet2 , typename ValueSet3 , typename... VSs>
auto vcsn::meet ( const ValueSet1 &  vs1,
const ValueSet2 &  vs2,
const ValueSet3 &  vs3,
const VSs &...  vs 
) -> decltype(meet(meet(vs1, vs2), vs3, vs...))

Definition at line 192 of file context.hh.

References meet().

Here is the call graph for this function:

template<typename LhsLabelSet , typename LhsWeightSet , typename RhsLabelSet , typename RhsWeightSet >
auto vcsn::meet ( const context< LhsLabelSet, LhsWeightSet > &  a,
const context< RhsLabelSet, RhsWeightSet > &  b 
) -> context<meet_t<LhsLabelSet, RhsLabelSet>, join_t<LhsWeightSet, RhsWeightSet>>

The meet of two contexts.

Definition at line 232 of file context.hh.

References join(), and meet().

Here is the call graph for this function:

oneset vcsn::meet ( const oneset &  ,
const oneset &   
)
inline

The meet of two labelsets.

Definition at line 234 of file oneset.hh.

template<typename GenSet >
letterset<GenSet> vcsn::meet ( const letterset< GenSet > &  lhs,
const letterset< GenSet > &  rhs 
)

Compute the meet with another labelset.

Definition at line 259 of file letterset.hh.

References intersection().

Here is the call graph for this function:

template<typename GenSet >
wordset<GenSet> vcsn::meet ( const wordset< GenSet > &  lhs,
const wordset< GenSet > &  rhs 
)

Compute the meet with another alphabet.

Definition at line 308 of file wordset.hh.

References intersection().

Here is the call graph for this function:

template<typename Ctx1 , typename Ctx2 >
auto vcsn::meet ( const ratexpset< Ctx1 > &  a,
const ratexpset< Ctx2 > &  b 
) -> ratexpset<meet_t<Ctx1, Ctx2>>
inline

The meet of two ratexpsets.

Definition at line 480 of file ratexpset.hh.

Referenced by meet(), and meet_automata().

template<typename GenSet >
nullableset<letterset<GenSet> > vcsn::meet ( const nullableset< letterset< GenSet >> &  lhs,
const nullableset< letterset< GenSet >> &  rhs 
)

Compute the meet with another labelset.

Definition at line 532 of file nullableset.hh.

template<typename GenSet >
nullableset<letterset<GenSet> > vcsn::meet ( const letterset< GenSet > &  lhs,
const nullableset< letterset< GenSet >> &  rhs 
)

Definition at line 535 of file nullableset.hh.

template<typename GenSet >
nullableset<letterset<GenSet> > vcsn::meet ( const nullableset< letterset< GenSet >> &  lhs,
const letterset< GenSet > &  rhs 
)

Definition at line 538 of file nullableset.hh.

template<typename Lls , typename Rls >
nullableset<meet_t<Lls, Rls> > vcsn::meet ( const nullableset< Lls > &  lhs,
const nullableset< Rls > &  rhs 
)

Definition at line 542 of file nullableset.hh.

References meet().

Here is the call graph for this function:

template<typename... Auts>
auto vcsn::meet_automata ( Auts &&...  auts) -> decltype(make_mutable_automaton(meet(auts->context()...)))

Meet between automata.

Definition at line 33 of file product.hh.

References make_mutable_automaton(), and meet().

Referenced by product().

Here is the call graph for this function:

template<typename Aut >
std::enable_if<std::is_same<weightset_t_of<Aut>, b>::value && labelset_t_of<Aut>::is_free(), partition_automaton<Aut> >::type vcsn::minimize ( const Aut &  a,
const std::string &  algo 
)
inline

Definition at line 31 of file minimize.hh.

References minimize_moore(), minimize_signature(), minimize_weighted(), and str_escape().

Referenced by cominimize(), vcsn::dyn::detail::minimize(), minimize_moore(), minimize_signature(), minimize_weighted(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
std::enable_if<std::is_same<weightset_t_of<Aut>, b>::value && ! labelset_t_of<Aut>::is_free(), partition_automaton<Aut> >::type vcsn::minimize ( const Aut &  a,
const std::string &  algo 
)
inline

Definition at line 49 of file minimize.hh.

References minimize_signature(), minimize_weighted(), and str_escape().

Here is the call graph for this function:

template<typename Aut >
std::enable_if<!std::is_same<weightset_t_of<Aut>, b>::value, partition_automaton<Aut> >::type vcsn::minimize ( const Aut &  a,
const std::string &  algo 
)
inline

Definition at line 64 of file minimize.hh.

References minimize_weighted(), and str_escape().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::minimize_brzozowski ( const Aut &  a) -> decltype(determinize(codeterminize(a)))
inline

Definition at line 18 of file minimize-brzozowski.hh.

References codeterminize(), and determinize().

Referenced by cominimize_brzozowski(), and vcsn::dyn::detail::minimize().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::minimize_moore ( const Aut &  a) -> partition_automaton<Aut>
inline

Definition at line 218 of file minimize-moore.hh.

References minimize().

Referenced by minimize().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::minimize_signature ( const Aut &  a) -> partition_automaton<Aut>
inline

Definition at line 423 of file minimize-signature.hh.

References minimize().

Referenced by minimize().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::minimize_weighted ( const Aut &  a) -> partition_automaton<Aut>
inline

Definition at line 396 of file minimize-weighted.hh.

References minimize().

Referenced by minimize().

Here is the call graph for this function:

template<typename ValueSet >
ValueSet::value_t vcsn::multiply ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline

Product of weights.

Definition at line 331 of file concatenate.hh.

template<typename Aut >
state_t_of<Aut> vcsn::next_naive ( const Aut &  a)

Definition at line 29 of file to-expression.hh.

Referenced by eliminate_state_here().

template<typename Aut >
auto vcsn::normalize ( const Aut &  a) -> decltype(copy(a))

Normalize a automaton.

Definition at line 21 of file normalize.hh.

References costandard(), and standard().

Referenced by vcsn::rat::expansionset< ratexpset_t >::conjunctions_with_one_(), vcsn::rat::expansionset< ratexpset_t >::ldiv_here(), and vcsn::dyn::detail::normalize().

Here is the call graph for this function:

template<typename Aut >
size_t vcsn::num_accessible_states ( const Aut &  a)

Number of accessible states, not counting pre() and post().

Definition at line 84 of file accessible.hh.

References accessible_states(), and has().

Referenced by info(), is_accessible(), and num_coaccessible_states().

Here is the call graph for this function:

template<typename Aut >
size_t vcsn::num_coaccessible_states ( const Aut &  a)

Number of accessible states, not counting pre() and post().

Definition at line 99 of file accessible.hh.

References num_accessible_states(), and transpose().

Referenced by info(), and is_coaccessible().

Here is the call graph for this function:

template<class Aut >
size_t vcsn::num_codeterministic_states ( const Aut &  aut)
inline

Number of non-deterministic states of transpositive automaton.

Definition at line 48 of file is-deterministic.hh.

References num_deterministic_states(), and transpose().

Referenced by vcsn::detail_info::num_codeterministic_states().

Here is the call graph for this function:

template<class Aut >
size_t vcsn::num_deterministic_states ( const Aut &  aut)
inline

Number of non-deterministic states.

Definition at line 34 of file is-deterministic.hh.

References is_deterministic().

Referenced by num_codeterministic_states(), and vcsn::detail_info::num_deterministic_states().

Here is the call graph for this function:

template<typename Aut >
std::size_t vcsn::num_sccs ( const Aut &  aut)

Get number of strongly connected components.

Definition at line 278 of file scc.hh.

References scc().

Referenced by info().

Here is the call graph for this function:

template<typename Aut >
size_t vcsn::num_useful_states ( const Aut &  a)

Number of accessible states, not counting pre() and post().

Definition at line 107 of file accessible.hh.

References has(), and useful_states().

Referenced by info(), is_trim(), and is_useless().

Here is the call graph for this function:

std::shared_ptr< std::istream > vcsn::open_input_file ( const std::string &  file)

Open file for reading and return its autoclosing stream.

Parameters
filethe file name. "-" and "" denote stdin.

Definition at line 78 of file stream.cc.

std::shared_ptr< std::ostream > vcsn::open_output_file ( const std::string &  file)

Open file for writing and return its autoclosing stream.

Parameters
filethe file name. "-" and "" denote stdout.

Definition at line 93 of file stream.cc.

bool vcsn::operator< ( empty_t  ,
empty_t   
)
inline

Definition at line 15 of file empty.hh.

std::ostream & vcsn::operator<< ( std::ostream &  os,
direction  d 
)

Pretty-printing.

Definition at line 19 of file direction.cc.

References to_string().

Here is the call graph for this function:

std::ostream & vcsn::operator<< ( std::ostream &  o,
const iomanipulator &  g 
)
inline

Launch the iomanipulator action on o.

Call the operator() of g(so set, get or swap the xalloced data with data_).

Definition at line 14 of file xalloc.hxx.

std::ostream & vcsn::operator<< ( std::ostream &  os,
const signature &  sig 
)

Output a string, escaping special characters.

Definition at line 17 of file signature.cc.

References os, and vcsn::signature::sig.

std::ostream & vcsn::operator<< ( std::ostream &  o,
const path &  p 
)
inline

Dump p on o.

Definition at line 42 of file path.hxx.

References vcsn::path::dump().

Here is the call graph for this function:

std::ostream & vcsn::operator<< ( std::ostream &  o,
const file_library &  l 
)
inline

Print l on o.

Definition at line 103 of file file-library.hxx.

References vcsn::file_library::dump().

Here is the call graph for this function:

bool vcsn::operator== ( empty_t  ,
empty_t   
)
inline

Definition at line 22 of file empty.hh.

std::istream & vcsn::operator>> ( std::istream &  is,
direction &  d 
)

Parsing.

Definition at line 24 of file direction.cc.

References backward, eat(), fail_reading(), forward, and is.

Here is the call graph for this function:

template<typename Aut >
pair_automaton<Aut> vcsn::pair ( const Aut &  aut,
bool  keep_initials = false 
)
template<typename Aut >
std::vector<transition_t_of<Aut> > vcsn::path_bfs ( const Aut &  aut,
state_t_of< Aut >  start,
state_t_of< Aut >  end 
)

A shortest path between two states.

Parameters
autthe automaton
startthe starting state
endthe target state

Definition at line 119 of file distance.hh.

Referenced by ambiguous_word().

template<typename Aut >
std::unordered_map<state_t_of<Aut>, std::pair<unsigned, transition_t_of<Aut> > > vcsn::paths_ibfs ( const Aut &  aut,
std::vector< state_t_of< Aut >>  start 
)

Definition at line 74 of file distance.hh.

Referenced by vcsn::detail::synchronizer< Aut >::init_pair().

template<typename Aut >
auto vcsn::power ( const Aut &  aut,
unsigned  n 
) -> typename Aut::element_type::automaton_nocv_t

Definition at line 674 of file product.hh.

References product(), and vcsn::detail::automaton_decorator< Aut >::strip().

Referenced by vcsn::dyn::detail::power(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::prefix ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

Definition at line 72 of file prefix.hh.

References copy(), and prefix_here().

Referenced by vcsn::ast::context_parser::automaton_(), and vcsn::dyn::detail::prefix().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::prefix_here ( Aut &  aut)

Make all coaccessible states final.

Definition at line 63 of file prefix.hh.

References suffix_here(), and transpose().

Referenced by prefix().

Here is the call graph for this function:

template<typename ValueSet >
std::ostream& vcsn::print ( const ValueSet &  vs,
const typename ValueSet::value_t &  v,
std::ostream &  o,
const std::string &  format 
)
inline
template<typename T , typename Compare , typename Alloc >
std::ostream& vcsn::print ( const std::set< T, Compare, Alloc > &  set,
std::ostream &  o 
)

Print with a separator. Meant to help debugging.

template<typename T >
std::ostream& vcsn::print ( const std::set< T > &  set,
std::ostream &  o 
)
inline

Definition at line 75 of file set.hxx.

template<typename... Auts>
auto vcsn::product ( const Auts &...  as) -> product_automaton<decltype(meet_automata(as...)), Auts...>
inline

Build the (accessible part of the) product.

Definition at line 445 of file product.hh.

References make_product_automaton(), and meet_automata().

Referenced by difference(), has_twins_property(), is_ambiguous(), is_cycle_ambiguous_scc(), power(), vcsn::dyn::detail::product(), vcsn::dyn::detail::product_(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::proper ( const Aut &  aut,
direction  dir = direction::backward,
bool  prune = true 
) -> mutable_automaton<decltype(proper_context(copy(aut)->context()))>

Eliminate spontaneous transitions.

Raise if the input automaton is invalid.

Definition at line 613 of file proper.hh.

References copy(), copy_into(), make_mutable_automaton(), proper_context(), and proper_here().

Referenced by vcsn::dyn::detail::proper(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename LabelSet , typename WeightSet >
auto vcsn::proper_context ( const context< LabelSet, WeightSet > &  ctx) -> context<typename proper_labelset<LabelSet>::type, WeightSet>

From a context, its non-nullable context.

Definition at line 599 of file proper.hh.

References vcsn::proper_labelset< LabelSet >::value().

Referenced by proper().

Here is the call graph for this function:

template<typename Aut >
void vcsn::proper_here ( Aut &  aut,
direction  dir = direction::backward,
bool  prune = true 
)
inline

Eliminate spontaneous transitions in place.

Raise if the automaton was not valid.

Definition at line 551 of file proper.hh.

References backward, forward, vcsn::detail::properer< Aut, has_one >::proper_here(), and transpose().

Referenced by proper().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::push_weights ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

The algorithm weight pushing.

1) Calculate shortest distance each state s to final states. 2) Update the weight of each transition by using shortest distance.

Definition at line 53 of file push-weights.hh.

References copy(), and shortest_distance_to_finals().

Referenced by vcsn::dyn::detail::push_weights(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::quotient ( const Aut &  a,
typename detail::quotienter< Aut >::class_to_set_t &  classes 
) -> partition_automaton<Aut>
inline
template<typename... Args>
ATTRIBUTE_NORETURN void vcsn::raise ( Args &&...  args)
inline

Raise a runtime_error with the concatenation of args as message.

Definition at line 26 of file raise.hh.

template<typename Ctx >
mutable_automaton<Ctx> vcsn::random ( const Ctx &  ctx,
unsigned  num_states,
float  density = 0.1,
unsigned  num_initial = 1,
unsigned  num_final = 1 
)

Definition at line 86 of file random.hh.

References vcsn::random_selector< RandomGenerator >::pop(), random_label(), and require().

Referenced by vcsn::dyn::detail::random(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Ctx >
mutable_automaton<Ctx> vcsn::random_deterministic ( const Ctx &  ctx,
unsigned  num_states 
)

Definition at line 235 of file random.hh.

References require().

Referenced by vcsn::dyn::detail::random_deterministic(), and vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename RandomGenerator = std::default_random_engine>
oneset::value_t vcsn::random_label ( const oneset &  ls,
RandomGenerator &  = RandomGenerator() 
)

Definition at line 20 of file random.hh.

References vcsn::oneset::one().

Referenced by random(), and random_label().

Here is the call graph for this function:

template<typename... LabelSet, typename RandomGenerator = std::default_random_engine>
tupleset<LabelSet...>::value_t vcsn::random_label ( const tupleset< LabelSet...> &  ls,
RandomGenerator &  gen = RandomGenerator() 
)

Definition at line 29 of file random.hh.

References vcsn::tupleset< LabelSets >::indices, and random_label().

Here is the call graph for this function:

template<typename... LabelSet, size_t... I, typename RandomGenerator = std::default_random_engine>
tupleset<LabelSet...>::value_t vcsn::random_label ( const tupleset< LabelSet...> &  ls,
RandomGenerator &  gen,
detail::index_sequence< I...>   
)

Definition at line 39 of file random.hh.

References random_label(), and vcsn::tupleset< LabelSets >::value().

Here is the call graph for this function:

template<typename LabelSet , typename RandomGenerator = std::default_random_engine>
LabelSet::value_t vcsn::random_label ( const LabelSet ls,
RandomGenerator &  gen = RandomGenerator() 
)

Definition at line 50 of file random.hh.

References make_random_selector().

Here is the call graph for this function:

template<typename LabelSet , typename RandomGenerator = std::default_random_engine>
nullableset<LabelSet>::value_t vcsn::random_label ( const nullableset< LabelSet > &  ls,
RandomGenerator &  gen = RandomGenerator() 
)

Definition at line 61 of file random.hh.

References vcsn::nullableset< LabelSet >::labelset(), vcsn::nullableset< LabelSet >::one(), random_label(), and vcsn::nullableset< LabelSet >::value().

Here is the call graph for this function:

template<typename Context , typename RandomGenerator = std::default_random_engine>
ratexpset<Context>::value_t vcsn::random_label ( const ratexpset< Context > &  rs,
RandomGenerator &  gen = RandomGenerator() 
)

Definition at line 74 of file random.hh.

References random_label().

Here is the call graph for this function:

template<typename Context >
auto vcsn::read_label ( std::istream &  is,
const Context &  ctx 
) -> label_t_of<Context>
inline

Definition at line 21 of file read.hh.

References is.

Referenced by vcsn::ctx::detail::register_functions().

template<typename Context >
auto vcsn::read_polynomial ( const Context &  ctx,
std::istream &  is 
) -> typename polynomialset<Context>::value_t
inline

Definition at line 55 of file read.hh.

References conv(), and is.

Referenced by vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Context >
auto vcsn::read_weight ( const Context &  ctx,
std::istream &  is 
) -> weight_t_of<Context>
inline

Definition at line 90 of file read.hh.

References is.

Referenced by vcsn::ctx::detail::register_functions().

template<typename Aut >
auto vcsn::reduce ( const Aut &  input) -> decltype(copy(input))

Definition at line 610 of file reduce.hh.

References left_reduce(), and transpose().

Here is the call graph for this function:

template<typename... Args>
void vcsn::require ( bool  b,
Args &&...  args 
)
inline

If b is not verified, raise an error with args as message.

Definition at line 39 of file raise.hh.

Referenced by vcsn::edit_automaton< Aut >::add_entry(), ambiguous_word(), cerny(), complement_here(), concatenate(), concatenate_here(), conv(), vcsn::detail::min_plus_impl< int >::conv(), vcsn::oneset::conv(), vcsn::letterset< GenSet >::conv(), vcsn::detail::q_impl::conv(), vcsn::nullableset< LabelSet >::conv(), vcsn::polynomialset< ratexpset_t >::conv(), vcsn::detail::genset_labelset< GenSet >::convs_(), de_bruijn(), derivation(), vcsn::dyn::detail::derived_term(), vcsn::detail::synchronizer< Aut >::dest_state(), divkbaseb(), double_ring(), eat(), vcsn::detail::gcd(), vcsn::dyn::detail::Registry< Fun >::get(), vcsn::char_letters::get_char(), get_file_contents(), vcsn::are_isomorphicer< Aut1, Aut2 >::get_full_response(), vcsn::detail::pair_automaton_impl< Aut >::get_origin(), vcsn::detail::pair_automaton_impl< Aut >::get_q0(), vcsn::set_alphabet< L >::get_word(), has_twins_property(), vcsn::detail::synchronizer< Aut >::init_synchro(), is_synchronized_by(), ladybird(), vcsn::wordset< GenSet >::ldiv(), vcsn::rat::ratexpset_impl< Context >::letter_class_(), vcsn::detail_moore::minimizer< Aut >::minimizer(), vcsn::detail_weighted::minimizer< Aut >::minimizer(), vcsn::detail_signature::minimizer< Aut >::minimizer(), vcsn::detail::state_eliminator< Aut, labels_are_one >::operator()(), vcsn::detail::state_eliminator< Aut, labels_are_ratexps >::operator()(), vcsn::are_isomorphicer< Aut1, Aut2 >::origins(), vcsn::detail::dot::driver::parse(), vcsn::detail::dot::parser::parse(), vcsn::detail::properer< Aut, has_one >::proper_here_(), random(), random_deterministic(), vcsn::detail::min_plus_impl< int >::rdiv(), vcsn::detail::b_impl::rdiv(), vcsn::detail::z_impl::rdiv(), vcsn::detail::f2_impl::rdiv(), vcsn::detail::qmp_impl::rdiv(), vcsn::detail::r_impl::rdiv(), vcsn::detail::q_impl::rdiv(), vcsn::dyn::read_efsm(), vcsn::rat::ratexpset_impl< Context >::require_weightset_commutativity(), vcsn::detail::f2_impl::star(), vcsn::rat::ratexpset_impl< Context >::star(), star_here(), sum_here(), and u().

std::ostream & vcsn::resetindent ( std::ostream &  o)

Reset the indentation.

Definition at line 34 of file indent.cc.

References vcsn::detail::indentation.

template<typename Aut >
std::stack<state_t_of<Aut> > vcsn::reverse_postorder ( const Aut &  aut)

Get all vertices in reverse postorder.

Definition at line 152 of file scc.hh.

References vcsn::detail::reverse_postorder_impl< Aut >::reverse_post().

Referenced by vcsn::detail::scc_kosaraju_impl< Aut >::scc_kosaraju_impl().

Here is the call graph for this function:

template<typename Aut >
Aut::element_type::automaton_nocv_t vcsn::right_mult ( const Aut &  aut,
const weight_t_of< Aut > &  w 
)
inline

Definition at line 211 of file left-mult.hh.

References copy(), and right_mult_here().

Referenced by vcsn::ctx::detail::register_functions(), and vcsn::dyn::detail::right_mult_ratexp().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::right_mult ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r,
const weight_t_of< RatExpSet > &  w 
)
inline

Definition at line 250 of file left-mult.hh.

template<typename Aut >
Aut& vcsn::right_mult_here ( Aut &  res,
const weight_t_of< Aut > &  w 
)
inline

Definition at line 203 of file left-mult.hh.

References vcsn::detail::standard_operations< Aut >::right_mult_here().

Referenced by right_mult(), and vcsn::dyn::detail::right_mult().

Here is the call graph for this function:

template<typename Aut >
const detail::components_t<Aut> vcsn::scc ( const Aut &  aut,
SCC_ALGO  algo = SCC_ALGO::TARJAN 
)

Find all strongly connected components of aut.

Definition at line 229 of file scc.hh.

References BUILTIN_UNREACHABLE, vcsn::detail::scc_tarjan_impl< Aut >::components(), vcsn::detail::scc_kosaraju_impl< Aut >::components(), KOSARAJU, and TARJAN.

Referenced by has_twins_property(), is_cycle_ambiguous(), is_cycle_ambiguous_scc(), and num_sccs().

Here is the call graph for this function:

template<typename Automaton >
detail::enumerater<Automaton>::polynomial_t vcsn::shortest ( const Automaton &  aut,
unsigned  num 
)
inline

Definition at line 141 of file enumerate.hh.

References vcsn::detail::enumerater< Aut >::shortest().

Referenced by vcsn::ctx::detail::register_functions_is_free().

Here is the call graph for this function:

template<typename Aut >
weight_t_of<Aut> vcsn::shortest_distance_to_finals ( Aut  aut,
state_t_of< Aut >  s0 
)

Find shorhest of s0 to the final states of aut by using single source shortest distance.

Definition at line 27 of file push-weights.hh.

References ss_shortest_distance().

Referenced by push_weights(), and shortest_distance_to_finals().

Here is the call graph for this function:

template<typename Aut >
std::unordered_map<state_t_of<Aut>, weight_t_of<Aut> > vcsn::shortest_distance_to_finals ( Aut  aut)

Find all shortest distance of each state to the final states of aut.

Definition at line 37 of file push-weights.hh.

References shortest_distance_to_finals().

Here is the call graph for this function:

template<typename... Auts>
auto vcsn::shuffle ( const Auts &...  as) -> product_automaton<decltype(join_automata(as...)), Auts...>
inline

The (accessible part of the) shuffle product.

Definition at line 520 of file product.hh.

References join_automata(), and make_product_automaton().

Referenced by info(), vcsn::dyn::detail::shuffle(), vcsn::dyn::detail::shuffle_(), and vcsn::dyn::detail::shuffle_ratexp().

Here is the call graph for this function:

template<typename ValueSet >
ValueSet::value_t vcsn::shuffle ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline

Shuffle product of ratexps.

Definition at line 579 of file product.hh.

template<typename T >
std::string vcsn::sname ( T &  )

Definition at line 37 of file name.hh.

Referenced by vcsn::snamer< T >::operator()().

template<typename RatExpSet >
rat::ratexp_polynomial_t<RatExpSet> vcsn::split ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)
inline
template<typename RatExpSet >
rat::ratexp_polynomial_t<RatExpSet> vcsn::split ( const RatExpSet &  rs,
const rat::ratexp_polynomial_t< RatExpSet > &  p 
)
inline

Split a polynomial of ratexps.

Definition at line 288 of file split.hh.

References vcsn::rat::make_ratexp_polynomialset(), and split().

Here is the call graph for this function:

template<typename PolynomialSet >
PolynomialSet::value_t vcsn::split_polynomial ( const PolynomialSet &  ps,
const typename PolynomialSet::value_t &  p 
)
inline

Split a polynomial of ratexps.

Definition at line 303 of file split.hh.

References split().

Here is the call graph for this function:

template<typename Aut >
std::unordered_map<state_t_of<Aut>, weight_t_of<Aut> > vcsn::ss_shortest_distance ( Aut  aut,
state_t_of< Aut >  s0 
)

Single source shortest distance.

Find shortest path from state s0 to all states of automaton aut.

Definition at line 23 of file distance.hh.

References has().

Referenced by shortest_distance_to_finals().

Here is the call graph for this function:

template<typename... Args>
signature vcsn::ssignature ( )
inline

Static signature.

Definition at line 46 of file name.hh.

template<typename Aut >
auto vcsn::standard ( const Aut &  aut) -> decltype(copy(aut))

Definition at line 120 of file standard.hh.

References copy(), and standard_here().

Referenced by costandard(), normalize(), vcsn::ctx::detail::register_functions(), vcsn::dyn::detail::standard(), and standard().

Here is the call graph for this function:

template<typename Aut , typename RatExpSet >
Aut vcsn::standard ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r 
)

Build a standard automaton from a ratexp.

Template Parameters
Autrelative to the generated automaton.
RatExpSetrelative to the RatExp.

Definition at line 381 of file standard.hh.

References standard().

Here is the call graph for this function:

template<typename Aut >
void vcsn::standard_here ( Aut &  aut)

Turn aut into a standard automaton.

Template Parameters
Autan automaton type, not a pointer type.

Definition at line 85 of file standard.hh.

References is_standard().

Referenced by standard().

Here is the call graph for this function:

template<typename Aut >
Aut::element_type::automaton_nocv_t vcsn::star ( const Aut &  aut)

Star of a standard automaton.

Definition at line 61 of file star.hh.

References copy(), and star_here().

Referenced by chain(), info(), and vcsn::dyn::detail::star().

Here is the call graph for this function:

template<typename RatExpSet >
unsigned vcsn::star_height ( const typename RatExpSet::value_t &  e)
inline

Star height of a ratexp.

Definition at line 86 of file star-height.hh.

Referenced by vcsn::ctx::detail::register_functions().

template<typename Aut >
Aut& vcsn::star_here ( Aut &  res)

In place star of a standard automaton.

See standard_visitor::visit(star).

Definition at line 21 of file star.hh.

References is_standard(), and require().

Referenced by star().

Here is the call graph for this function:

template<typename RatExpSet >
RatExpSet::value_t vcsn::star_normal_form ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)

Star_Normal_Forming a typed ratexp shared_ptr.

Definition at line 182 of file star-normal-form.hh.

Referenced by vcsn::ctx::detail::register_functions().

std::string vcsn::str_escape ( const std::string &  c)

Likewise, but produces a string.

Definition at line 58 of file escape.cc.

References str_escape().

Here is the call graph for this function:

std::ostream & vcsn::str_escape ( std::ostream &  os,
int  c 
)

Output a character, escaping special characters.

-1 denotes end-of-file.

Definition at line 12 of file escape.cc.

References os.

std::string vcsn::str_escape ( int  c)

Likewise, but produces a string.

Definition at line 35 of file escape.cc.

References str_escape().

Here is the call graph for this function:

Definition at line 271 of file string.hh.

References vcsn::string_letters::special_letter().

Here is the call graph for this function:

Definition at line 279 of file string.hh.

References vcsn::string_letters::special_letter().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::strip ( const Aut &  aut) -> decltype(detail::strip(aut, 0))
inline

Remove (all) the decorations from a decorated automaton.

Definition at line 38 of file strip.hh.

References vcsn::detail::strip().

Referenced by difference(), vcsn::dyn::detail::strip(), and vcsn::detail::transpose_automaton_impl< Aut >::strip().

Here is the call graph for this function:

template<typename Container1 , typename Container2 >
bool vcsn::subset ( const Container1 &  set1,
const Container2 &  set2 
)
inline

Whether set1set2.

Definition at line 88 of file set.hxx.

Referenced by vcsn::detail::universaler< Aut >::work_().

template<typename Aut >
auto vcsn::subword ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

Apply subword_here() to a copy of aut.

Definition at line 175 of file prefix.hh.

References copy(), and subword_here().

Referenced by vcsn::dyn::detail::subword().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::subword_here ( Aut &  aut)

Add spontaneous transitions for each non spontaneous transition, with same source, destination and weight.

Definition at line 154 of file prefix.hh.

Referenced by subword().

template<typename Aut >
auto vcsn::suffix ( const Aut &  aut) -> decltype(::vcsn::copy(aut))

Definition at line 29 of file prefix.hh.

References copy(), and suffix_here().

Referenced by vcsn::dyn::detail::suffix().

Here is the call graph for this function:

template<typename Aut >
Aut& vcsn::suffix_here ( Aut &  aut)

Make all accessible states initial.

Definition at line 17 of file prefix.hh.

References accessible_states().

Referenced by prefix_here(), and suffix().

Here is the call graph for this function:

template<typename A , typename B >
auto vcsn::sum ( const A &  lhs,
const B &  rhs 
) -> decltype(join_automata(lhs, rhs))
inline

Definition at line 65 of file sum.hh.

References join_automata(), and sum_here().

Referenced by chain(), info(), vcsn::are_isomorphicer< Aut1, Aut2 >::print_class_stats(), vcsn::dyn::detail::sum(), and vcsn::dyn::detail::sum_ratexp().

Here is the call graph for this function:

template<typename ValueSet >
ValueSet::value_t vcsn::sum ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline

Sums of values.

Definition at line 104 of file sum.hh.

template<typename A , typename B >
A& vcsn::sum_here ( A &  res,
const B &  b 
)

Merge transitions of b into those of res.

Precondition
The context of res must include that of b.
res and b must be standard.

Definition at line 28 of file sum.hh.

References is_standard(), and require().

Referenced by sum().

Here is the call graph for this function:

template<typename Aut >
labelset_t_of<Aut>::word_t vcsn::synchronizing_word ( const Aut &  aut,
const std::string &  algo = "greedy" 
)
template<typename Aut , typename RatExpSet >
Aut vcsn::thompson ( const context_t_of< Aut > &  ctx,
const RatExpSet &  rs,
const typename RatExpSet::value_t &  r 
)

Build a Thompson automaton from a ratexp.

Template Parameters
Autrelative to the generated automaton.
RatExpSetrelative to the RatExp.

Definition at line 170 of file thompson.hh.

Referenced by vcsn::ctx::detail::register_functions(), and thompson().

template<typename Aut , typename RatExpSet >
Aut vcsn::thompson ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  r 
)

Build a Thompson automaton from a ratexp.

Template Parameters
Autrelative to the generated automaton.
RatExpSetrelative to the RatExp.

Definition at line 184 of file thompson.hh.

References thompson().

Here is the call graph for this function:

template<typename AutPtr >
std::ostream& vcsn::tikz ( const AutPtr &  aut,
std::ostream &  out 
)

Print automaton to TikZ format.

Template Parameters
AutPtran automaton type.

Definition at line 128 of file tikz.hh.

Referenced by vcsn::ctx::detail::register_functions().

template<typename RatExpSet >
rat::expansionset<RatExpSet>::value_t vcsn::to_expansion ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  e 
)
inline

First order expansion.

Definition at line 420 of file to-expansion.hh.

References vcsn::dyn::detail::to_expansion().

Referenced by vcsn::ctx::detail::register_functions(), and vcsn::rat::to_expansion_visitor< RatExpSet >::VCSN_RAT_VISIT().

Here is the call graph for this function:

template<typename Aut , typename RatExpSet = ratexpset<context_t_of<Aut>>>
RatExpSet::value_t vcsn::to_expression ( const Aut &  a,
const state_chooser_t< Aut > &  next_state 
)

Definition at line 267 of file to-expression.hh.

References lift(), and vcsn::detail::make_state_eliminator().

Referenced by vcsn::ctx::detail::register_functions(), and to_expression_naive().

Here is the call graph for this function:

template<typename Aut , typename RatExpSet = ratexpset<context_t_of<Aut>>>
RatExpSet::value_t vcsn::to_expression_naive ( const Aut &  a)

Definition at line 281 of file to-expression.hh.

References to_expression().

Referenced by vcsn::dyn::detail::to_expression().

Here is the call graph for this function:

template<typename ValueSet , typename... Args>
auto vcsn::to_string ( const ValueSet &  vs,
const typename ValueSet::value_t &  v,
Args &&...  args 
) -> std::string

Format v via vs.print.

Definition at line 66 of file stream.hh.

template<class RatExpSet >
RatExpSet::value_t vcsn::transpose ( const RatExpSet &  rs,
const typename RatExpSet::value_t &  v 
)

Definition at line 154 of file transpose.hh.

Referenced by vcsn::dyn::detail::transpose_ratexp().

template<typename Aut >
transpose_automaton<Aut> vcsn::transpose ( Aut  aut)
inline

Definition at line 238 of file transpose.hh.

template<typename Aut >
filter_automaton<Aut> vcsn::trim ( const Aut &  a)

Definition at line 141 of file accessible.hh.

References filter(), and useful_states().

Referenced by has_twins_property(), vcsn::ctx::detail::register_functions(), and vcsn::dyn::detail::trim().

Here is the call graph for this function:

template<typename Context >
mutable_automaton<Context> vcsn::u ( const Context &  ctx,
unsigned  n 
)

The Brzozowski universal witness.

Definition at line 17 of file u.hh.

References require().

Referenced by vcsn::ctx::detail::register_functions_is_free(), vcsn::ctx::detail::register_kind_functions(), and vcsn::dyn::detail::u().

Here is the call graph for this function:

template<typename A , typename B >
auto vcsn::union_a ( const A &  lhs,
const B &  rhs 
) -> decltype(join_automata(lhs, rhs))
inline

Union of two automata.

Definition at line 33 of file union.hh.

References join_automata(), and union_here().

Referenced by vcsn::ctx::detail::register_functions(), and vcsn::dyn::detail::union_a().

Here is the call graph for this function:

template<typename A , typename B >
A& vcsn::union_here ( A &  res,
const B &  b 
)
inline

Merge transitions of b into those of res.

Precondition
AutIn <: AutOut.

Definition at line 23 of file union.hh.

References copy_into().

Referenced by union_a().

Here is the call graph for this function:

template<class Aut >
Aut vcsn::universal ( const Aut &  a)
inline

Definition at line 127 of file universal.hh.

Referenced by vcsn::dyn::detail::universal().

template<typename Aut >
states_t<Aut> vcsn::useful_states ( const Aut &  a)

Definition at line 69 of file accessible.hh.

References accessible(), accessible_states(), coaccessible(), coaccessible_states(), and intersection().

Referenced by factor_here(), num_useful_states(), and trim().

Here is the call graph for this function:

vcsn::VCSN_CTX_INSTANTIATE ( ctx::lal_char_q  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::lal_char_zr  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::law_char_zr  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::law_char_br  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::law_char_zrr  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::lal_char_zrr  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::lal_char_br  )
vcsn::VCSN_CTX_INSTANTIATE ( ctx::lal_char_b  )
template<typename T >
std::string vcsn::vname ( T &  t)
template<typename... Args>
signature vcsn::vsignature ( Args &&...  args)
inline

The signature of (Args...).

Definition at line 178 of file name.hh.

References vname().

Referenced by vcsn::dyn::detail::Registry< Fun >::call().

Here is the call graph for this function:

template<typename... Sequences>
zip_sequences<Sequences...> vcsn::zip ( Sequences &&...  seqs)

Definition at line 223 of file zip.hh.

Referenced by vcsn::tupleset< LabelSets >::letters_of_().

template<typename Dereference = as_pair, typename... Maps>
zipped_maps<Dereference, Maps...> vcsn::zip_map_tuple ( const std::tuple< Maps...> &  maps)
template<typename... Sequences>
zip_sequences<Sequences...> vcsn::zip_tuple ( const std::tuple< Sequences...> &  seqs)

Definition at line 230 of file zip.hh.

Variable Documentation

std::ostream vcsn::cnull {nullptr}

An narrow-char stream that discards the output.

Definition at line 13 of file stream.cc.

std::wostream vcsn::wcnull {nullptr}

An wide-char stream that discards the output.

Definition at line 14 of file stream.cc.