Vcsn  2.1
Be Rational
vcsn Namespace Reference

Namespaces

 ast
 
 ctx
 
 detail
 
 detail_info
 
 detail_moore
 
 detail_signature
 
 detail_weighted
 
 dyn
 
 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
 Represent alphabets whose "letters" are plain chars. More...
 
struct  container_filter_range
 
struct  container_range
 Restrict the interface of a container to begin/end. More...
 
class  context
 
struct  cross_sequences
 Provide a range that allows to iterate over the cross product of the provided ranges. More...
 
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...
 
class  format
 An input/output format. 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_expressions
 
struct  labels_are_letters
 
struct  labels_are_nullable
 
struct  labels_are_one
 
struct  labels_are_tuples
 
struct  labels_are_words
 
class  lazy_automaton_editor
 Build an automaton with unknown context. More...
 
struct  less
 Functor to compare Values of ValueSets. More...
 
struct  less_equal
 Functor to compare Values of ValueSets. More...
 
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...
 
struct  possibly_labeled_transition_tuple
 Transition on non-empty label. More...
 
struct  possibly_labeled_transition_tuple< State, empty_t >
 Transition on empty label. More...
 
struct  random_selector
 
class  set_alphabet
 A set of letters of type L. More...
 
struct  signature
 Signature of a function call. More...
 
struct  snamer
 
struct  snamer< bool >
 
struct  snamer< boost::optional< unsigned > >
 
struct  snamer< const std::set< std::pair< std::string, std::string > > >
 
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< std::tuple< Args...> >
 The sname of a tuple is the tuple of the snames. More...
 
struct  snamer< unsigned >
 
struct  snamer< vcsn::direction >
 
struct  snamer< vcsn::rat::identities >
 
struct  state_distancer
 Wrapper struct to provide the state distance function. More...
 
struct  state_distancer< Aut, nmin >
 Struct specialization for nmin. More...
 
class  string_letters
 Represent alphabets whose "letters" are strings. More...
 
struct  transition_tuple
 Transition with label and non Boolean weight. More...
 
struct  transition_tuple< State, Label, bool >
 Transition with label and Boolean weight. More...
 
struct  vnamer
 
struct  vnamer< bool >
 
struct  vnamer< boost::optional< unsigned > >
 
struct  vnamer< const std::set< std::pair< std::string, std::string > > >
 
struct  vnamer< const std::string >
 
struct  vnamer< const std::vector< dyn::automaton > >
 Likewise, for expressions. More...
 
struct  vnamer< const std::vector< dyn::expression > >
 The vname of a vector of dyn::automata is the tuple of their vnames. More...
 
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 >
 
struct  weightset_mixin
 Provide a variadic mul on top of a binary mul(), and one(). More...
 
struct  welement
 
class  wordset
 Implementation of labels are words. More...
 
class  xalloc
 Allocate slots in std::ostreams. More...
 
struct  zip_sequences
 
struct  zip_sequences_padded
 
struct  zipped_maps
 

Typedefs

template<typename Aut >
using states_t = std::unordered_set< state_t_of< 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 >
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<typename Aut >
using delay_automaton = std::shared_ptr< detail::delay_automaton_impl< Aut >>
 An automaton wrapper that presents the delay automaton. More...
 
template<std::size_t Tape, typename Aut >
using focus_automaton = std::shared_ptr< detail::focus_automaton_impl< Tape, Aut >>
 A focus automaton as a shared pointer. More...
 
template<typename Aut >
using synchronized_automaton = std::shared_ptr< detail::synchronized_automaton_impl< Aut >>
 An automaton wrapper that presents the synchronized automaton. More...
 
template<typename Aut >
using transpose_automaton = std::shared_ptr< detail::transpose_automaton_impl< Aut >>
 An automaton wrapper that presents the transposed automaton. More...
 
using letter_class_t = std::set< std::pair< std::string, std::string >>
 A set of letter ranges. More...
 
template<typename Aut >
using pair_automaton = std::shared_ptr< detail::pair_automaton_impl< Aut >>
 
template<typename Aut >
using partial_identity_context_t_of = typename detail::partial_identity_context< Aut >::context_t
 
template<typename Aut >
using quotient_t = partition_automaton_t< Aut >
 The return type when calling quotient on Aut. More...
 
template<typename Aut >
using scc_automaton = std::shared_ptr< detail::scc_automaton_impl< Aut >>
 
template<typename Context >
using mutable_automaton = std::shared_ptr< detail::mutable_automaton_impl< Context >>
 
template<typename Context >
using name_automaton = std::shared_ptr< detail::name_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 expression_automaton = std::shared_ptr< detail::expression_automaton_impl< Aut >>
 An expression 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 Aut >
using partition_automaton = std::shared_ptr< detail::partition_automaton_impl< Aut >>
 A partition automaton as a shared pointer. More...
 
template<typename Aut >
using partition_automaton_t = typename detail::partition_automaton_t_impl< Aut >::type
 The return type when calling quotient on Aut. More...
 
template<typename Context >
using expressionset = weightset_mixin< rat::expressionset_impl< Context >>
 
template<typename... Auts>
using tuple_automaton = std::shared_ptr< detail::tuple_automaton_impl< Auts...>>
 A tuple automaton as a shared pointer. More...
 
template<typename... ValueSets>
using meet_t = decltype(meet(std::declval< ValueSets >()...))
 
template<typename T >
using base_t = remove_cv_t< remove_reference_t< T >>
 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 Aut , typename Context = context_t_of<Aut>>
using fresh_automaton_t_of = typename Aut::element_type::template fresh_automaton_t< Context >
 
template<typename ValueSet >
using letter_t_of = typename labelset_t_of< base_t< ValueSet >>::letter_t
 
template<typename ValueSet >
using word_t_of = typename labelset_t_of< base_t< ValueSet >>::word_t
 
template<typename... LabelSets>
using tupleset = weightset_mixin< detail::tupleset_impl< LabelSets...>>
 
using dynamic_bitset = boost::dynamic_bitset<>
 
using symbol = boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder >
 An internalized string. More...
 
template<size_t I, typename T >
using tuple_element_t = typename std::tuple_element< I, T >::type
 C++14. More...
 
template<bool B, typename T , typename U >
using conditional_t = typename std::conditional< B, T, U >::type
 
template<bool Cond, typename T = void>
using enable_if_t = typename std::enable_if< Cond, T >::type
 
template<typename T , typename U >
using is_same_t = typename std::is_same< T, U >::type
 
template<typename T >
using remove_const_t = typename std::remove_const< T >::type
 
template<typename T >
using remove_cv_t = typename std::remove_cv< T >::type
 
template<typename T >
using remove_reference_t = typename std::remove_reference< T >::type
 
template<bool B>
using bool_constant = std::integral_constant< bool, B >
 
template<typename Key , typename Value , wet_kind_t Kind = detail::wet_kind<Key, Value>(), typename Compare = std::less<Key>, typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
using wet = detail::wet_impl< Kind, Key, Value, Compare, Hash, KeyEqual >
 
template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
using wet_of = wet< label_t_of< Context >, weight_t_of< Context >, Kind, vcsn::less< labelset_t_of< Context >>, vcsn::hash< labelset_t_of< Context >>, vcsn::equal_to< labelset_t_of< Context >>>
 The corresponding wet for a LabelSet -> WeightSet context. More...
 
using b = weightset_mixin< detail::b_impl >
 
using f2 = weightset_mixin< detail::f2_impl >
 
using log = weightset_mixin< detail::log_impl >
 
using nmin = weightset_mixin< detail::nmin_impl >
 
using q = weightset_mixin< detail::q_impl >
 
using qmp = weightset_mixin< detail::qmp_impl >
 
using r = weightset_mixin< detail::r_impl >
 
using rmin = weightset_mixin< detail::rmin_impl >
 
using z = weightset_mixin< detail::z_impl >
 
using zmin = weightset_mixin< detail::zmin_impl >
 
template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
using polynomialset = weightset_mixin< detail::polynomialset_impl< Context, Kind >>
 

Enumerations

enum  scc_algo_t { scc_algo_t::dijkstra, scc_algo_t::tarjan_iterative, scc_algo_t::tarjan_recursive, scc_algo_t::kosaraju }
 
enum  to_expression_heuristic_t { to_expression_heuristic_t::best, to_expression_heuristic_t::delgado, to_expression_heuristic_t::delgado_label, to_expression_heuristic_t::naive }
 
enum  direction { direction::forward, direction::backward }
 Orientation. More...
 
enum  star_status_t { ABSVAL, NON_STARRABLE, STARRABLE, TOPS }
 
enum  wet_kind_t { wet_kind_t::bitset, wet_kind_t::map, wet_kind_t::set, wet_kind_t::unordered_map }
 

Functions

template<typename Aut >
states_t< Aut > accessible_states (const Aut &aut, bool strict=true)
 The set of accessible states, including pre(), and possibly post(). More...
 
template<typename Aut >
states_t< Aut > coaccessible_states (const Aut &a, bool strict=true)
 The set of coaccessible states, including post(), and possibly pre(). More...
 
template<typename Aut >
states_t< Aut > useful_states (const Aut &a, bool strict=true)
 The set of useful states, including possibly pre() and post(). More...
 
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)
 Accessible part of an automaton. More...
 
template<typename Aut >
filter_automaton< Aut > coaccessible (const Aut &a)
 Coaccessible part of an automaton. More...
 
template<typename Aut >
filter_automaton< Aut > trim (const Aut &a)
 Useful part of an automaton. More...
 
template<typename Aut >
bool is_trim (const Aut &a)
 Whether all its states are useful. More...
 
template<typename Aut >
bool is_useless (const Aut &a)
 Whether all no state is useful. More...
 
template<typename Aut >
bool is_accessible (const Aut &a)
 Whether all its states are accessible. More...
 
template<typename Aut >
bool is_coaccessible (const Aut &a)
 Whether all its states are coaccessible. More...
 
template<typename Aut >
bool is_empty (const Aut &a)
 Whether has no states. More...
 
template<typename Aut1 , typename Aut2 >
auto are_equivalent (const Aut1 &a1, const Aut2 &a2) -> vcsn::enable_if_t<(std::is_same< weightset_t_of< Aut1 >, b >::value &&std::is_same< weightset_t_of< Aut2 >, b >::value), bool >
 Check equivalence between Boolean automata on a free labelset. More...
 
template<typename ExpSet1 , typename ExpSet2 >
auto are_equivalent (const ExpSet1 &rs1, const typename ExpSet1::value_t r1, const ExpSet2 &rs2, const typename ExpSet2::value_t r2) -> bool
 Check equivalence between two expressions. More...
 
template<typename Lhs , typename Rhs >
fresh_automaton_t_of< Lhs > difference (const Lhs &lhs, const Rhs &rhs)
 An automaton that computes weights of lhs, but not by rhs. More...
 
template<typename ExpSet >
ExpSet::value_t difference (const ExpSet &rs, const typename ExpSet::value_t &lhs, const typename ExpSet::value_t &rhs)
 Difference of expressions. More...
 
template<typename Aut1 , typename Aut2 >
bool are_isomorphic (const Aut1 &a1, const Aut2 &a2)
 
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 , unsigned OutTape = 1, unsigned InTape = 0>
auto compose (Lhs &lhs, Rhs &rhs) -> typename detail::composer< focus_automaton< OutTape, Lhs >, focus_automaton< InTape, Rhs >>::automaton_t
 Build the (accessible part of the) composition. More...
 
template<typename Aut , typename... Auts>
auto make_product_automaton (Aut aut, const Auts &...auts) -> product_automaton< Aut, Auts...>
 
template<typename... Auts>
auto conjunction (const Auts &...as) -> tuple_automaton< decltype(meet_automata(as...)), Auts...>
 Build the (accessible part of the) conjunction. More...
 
template<typename... Auts>
auto conjunction_lazy (const Auts &...as) -> product_automaton< decltype(meet_automata(as...)), Auts...>
 Build the (accessible part of the) conjunction. More...
 
template<typename... Auts>
auto shuffle (const Auts &...as) -> tuple_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 expressions. More...
 
template<typename A1 , typename A2 >
auto infiltration (const A1 &a1, const A2 &a2) -> tuple_automaton< decltype(join_automata(a1, a2)), A1, A2 >
 The (accessible part of the) infiltration product. More...
 
template<typename A1 , typename A2 , typename A3 , typename... Auts>
auto infiltration (const A1 &a1, const A2 &a2, const A3 &a3, const Auts &...as) -> decltype(infiltration(infiltration(a1, a2), a3, as...))
 The (accessible part of the) infiltration product. More...
 
template<typename ValueSet >
ValueSet::value_t infiltration (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Infiltration product of expressions. More...
 
template<typename Aut >
auto conjunction (const Aut &aut, unsigned n) -> fresh_automaton_t_of< Aut >
 
template<typename ExpSet >
ExpSet::value_t conjunction (const ExpSet &rs, const typename ExpSet::value_t &lhs, const typename ExpSet::value_t &rhs)
 Intersection/Hadamard product of expressions. More...
 
template<typename ExpSet >
weight_t_of< ExpSet > constant_term (const ExpSet &rs, const typename ExpSet::value_t &e)
 The constant term of e. More...
 
template<typename AutIn , typename AutOut >
detail::copier< AutIn, AutOut > make_copier (const AutIn &in, AutOut &out)
 Build an automaton copier. More...
 
template<typename AutIn , typename AutOut , typename KeepState , typename KeepTrans >
void copy_into (const AutIn &in, AutOut &out, KeepState keep_state, KeepTrans keep_trans)
 Copy selected states and transitions of an automaton. More...
 
template<typename AutIn , typename AutOut , typename KeepState >
void copy_into (const AutIn &in, AutOut &out, KeepState keep_state)
 Copy the selected states an automaton. More...
 
template<typename AutIn , typename AutOut >
void copy_into (const AutIn &in, AutOut &out)
 Copy an automaton. More...
 
template<typename AutIn , typename AutOut >
void copy_into (const AutIn &in, AutOut &out, bool safe)
 Copy an automaton. More...
 
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
AutOut make_fresh_automaton (const AutIn &model)
 Create an empty, mutable, automaton, based on another one. More...
 
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>, typename KeepState , typename KeepTrans >
AutOut copy (const AutIn &input, KeepState keep_state, KeepTrans keep_trans)
 A copy of input keeping only its states that are accepted by keep_state. More...
 
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>, typename KeepState >
AutOut copy (const AutIn &input, KeepState keep_state)
 A copy of input. More...
 
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
AutOut copy (const AutIn &input)
 A copy of input. More...
 
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
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 = fresh_automaton_t_of<AutIn>>
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 ExpSet >
rat::expression_polynomial_t< ExpSet > derivation (const ExpSet &rs, const typename ExpSet::value_t &e, label_t_of< ExpSet > a, bool breaking)
 Derive an expression wrt to a letter. More...
 
template<typename ExpSet >
rat::expression_polynomial_t< ExpSet > derivation (const ExpSet &rs, const rat::expression_polynomial_t< ExpSet > &p, label_t_of< ExpSet > a, bool breaking=false)
 Derive a polynomial of expressions wrt to a letter. More...
 
template<typename ExpSet , typename = vcsn::enable_if_t<!std::is_same<word_t_of<ExpSet>, label_t_of<ExpSet>> ::value>>
rat::expression_polynomial_t< ExpSet > derivation (const ExpSet &rs, const typename ExpSet::value_t &e, const word_t_of< ExpSet > &l, bool breaking=false)
 Derive an expression wrt to a word. More...
 
template<typename ExpSet >
vcsn::enable_if_t< labelset_t_of< ExpSet >::is_free(), expression_automaton< mutable_automaton< typename ExpSet::context_t > > > derived_term (const ExpSet &rs, const typename ExpSet::value_t &r, const std::string &algo="auto")
 The derived-term automaton, for free labelsets. More...
 
template<typename ExpSet >
vcsn::enable_if_t<!labelset_t_of< ExpSet >::is_free(), expression_automaton< mutable_automaton< typename ExpSet::context_t > > > derived_term (const ExpSet &rs, const typename ExpSet::value_t &r, const std::string &algo="auto")
 The derived-term automaton, for non free labelsets. 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::vector< weight_t_of< Aut > > ss_shortest_distance (const 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, const std::vector< state_t_of< Aut >> &start)
 Find the shortest paths from some states to all the states. More...
 
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 Aut >
std::vector< std::vector< weight_t_of< Aut > > > all_distances (const Aut &aut)
 
template<typename ValueSet >
ValueSet::value_t ldiv (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Left-division of values. More...
 
template<typename ValueSet >
ValueSet::value_t lgcd (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Left-division of values. More...
 
template<typename ValueSet >
ValueSet::value_t rdiv (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Right-division of values. 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<typename 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 Aut >
auto eval (const Aut &a, const word_t_of< Aut > &w) -> weight_t_of< Aut >
 
template<typename ExpSet >
ExpSet::value_t expand (const ExpSet &rs, const typename ExpSet::value_t &e)
 Expand a typed expression. 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<unsigned Tape, typename Aut >
focus_automaton< Tape, Aut > focus (Aut aut)
 
template<typename Aut >
bool in_situ_remover (Aut &aut, bool prune=true)
 
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 ExpSet >
bool is_valid (const ExpSet &rs, const typename ExpSet::value_t &e)
 Whether e has only computable stars. More...
 
template<typename ExpSet >
rat::expansionset< ExpSet >::value_t to_expansion (const ExpSet &rs, const typename ExpSet::value_t &e)
 First order expansion. 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 has_bounded_lag (const Aut &aut)
 Whether a transducer has a bounded lag. More...
 
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<typename Aut >
std::ostream & info (const Aut &aut, std::ostream &out, bool detailed=false)
 
template<typename ExpSet >
void info (const ExpSet &rs, const typename ExpSet::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 >
word_t_of< Aut > 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<typename Aut >
size_t num_deterministic_states (const Aut &aut)
 Number of non-deterministic states. More...
 
template<typename Aut >
size_t num_codeterministic_states (const Aut &aut)
 Number of non-deterministic states of transpositive automaton. More...
 
template<typename Aut >
bool is_deterministic (const Aut &aut)
 Whether has at most an initial state, and all its states are deterministic. More...
 
template<typename 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_functional (const Aut &aut)
 Whether aut is functional. More...
 
template<typename Aut >
bool is_partial_identity (const Aut &aut)
 Whether transducer aut is equivalent to a partial identity function on all successful paths. More...
 
template<typename Aut >
bool is_synchronized (const Aut &aut)
 Check whether the transducer is synchronized. More...
 
template<typename Aut >
auto make_delay_automaton (const Aut &aut) -> decltype(detail::make_delay_automaton(aut))
 Check whether the transducer is synchronized. More...
 
template<typename 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 = fresh_automaton_t_of<AutIn>>
AutOut left_mult (const weight_t_of< AutOut > &w, const AutIn &aut)
 
template<typename ExpSet >
ExpSet::value_t left_mult (const ExpSet &rs, const weight_t_of< ExpSet > &w, const typename ExpSet::value_t &r)
 
template<typename WeightSet , typename ExpSet >
expressionset< context< labelset_t_of< ExpSet >, join_t< WeightSet, weightset_t_of< ExpSet > > > > join_weightset_expressionset (const WeightSet &ws, const ExpSet &rs)
 Join between an expressionset and a weightset. More...
 
template<typename Aut >
Aut & right_mult_here (Aut &res, const weight_t_of< Aut > &w)
 
template<typename Aut >
fresh_automaton_t_of< Aut > right_mult (const Aut &aut, const weight_t_of< Aut > &w)
 
template<typename ExpSet >
ExpSet::value_t right_mult (const ExpSet &rs, const typename ExpSet::value_t &r, const weight_t_of< ExpSet > &w)
 
template<typename ExpSet >
bool less_than (const ExpSet &rs, const typename ExpSet::value_t &lhs, const typename ExpSet::value_t &rhs)
 Whether lhs precedes rhs. More...
 
template<typename Aut >
auto letterize (const Aut &aut) -> decltype(detail::letterize(aut))
 Split the word transitions in the input automaton into letter ones. More...
 
template<typename Aut >
bool is_letterized (const Aut &aut)
 Check if the transitions are all letters. More...
 
template<typename Aut >
auto realtime (const Aut &aut) -> decltype(proper(::vcsn::letterize(aut)))
 Split the word transitions in the input automaton into letter ones, and remove the spontaneous transitions. More...
 
template<typename Aut >
bool is_realtime (const Aut &aut)
 Check if the automaton is realtime, i.e. More...
 
template<typename Context >
mutable_automaton< Context > levenshtein (const Context &ctx)
 
template<typename Aut , size_t... Tapes>
detail::lifted_automaton_t< Aut, Tapes...> lift (const Aut &a, vcsn::rat::identities ids={})
 Lift some tapes of the transducer. More...
 
template<typename ExpSet >
detail::lifted_expressionset_t< ExpSet >::value_t lift (const ExpSet &rs, const typename ExpSet::value_t &e)
 Move all the labels to the weights. More...
 
template<typename Automaton >
detail::weighter< Automaton >::polynomial_t lightest (const Automaton &aut, boost::optional< unsigned > num={})
 The approximated behavior of an automaton. More...
 
template<typename Automaton >
detail::weighter< Automaton >::polynomial_t weigh (const Automaton &aut)
 The approximated behavior of an automaton. More...
 
template<typename Ctx >
Ctx make_context (const std::string &name)
 
template<typename Ctx >
constexpr auto num_tapes (const Ctx &) -> enable_if_t< Ctx::is_lat, size_t >
 
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) -> quotient_t< Aut >
 Minimize automaton a using the Moore algorithm. More...
 
template<typename Aut >
auto minimize_signature (const Aut &a) -> quotient_t< Aut >
 
template<typename Aut >
auto minimize_weighted (const Aut &a) -> quotient_t< Aut >
 
template<typename Aut >
vcsn::enable_if_t< std::is_same< weightset_t_of< Aut >, b >::value &&labelset_t_of< Aut >::is_free(), quotient_t< Aut > > minimize (const Aut &a, const std::string &algo="auto")
 
template<typename Aut >
vcsn::enable_if_t< std::is_same< weightset_t_of< Aut >, b >::value &&!labelset_t_of< Aut >::is_free(), quotient_t< Aut > > minimize (const Aut &a, const std::string &algo="auto")
 
template<typename Aut >
vcsn::enable_if_t<!std::is_same< weightset_t_of< Aut >, b >::value, quotient_t< Aut > > minimize (const Aut &a, const std::string &algo="auto")
 
template<typename Aut >
auto cominimize (const Aut &a, const std::string &algo="auto") -> decltype(transpose(minimize(transpose(a), algo)))
 
template<typename A , typename B >
A & multiply_here (A &res, const B &b)
 Append automaton b to res. More...
 
template<typename A , typename B >
auto multiply (const A &lhs, const B &rhs) -> decltype(join_automata(lhs, rhs))
 Concatenate two standard automata. More...
 
template<typename Aut >
auto multiply (const Aut &aut, int min, int max) -> typename Aut::element_type::template fresh_automaton_t<>
 Repeated concatenation of an automaton. More...
 
template<typename ValueSet >
ValueSet::value_t multiply (const ValueSet &vs, const typename ValueSet::value_t &lhs, const typename ValueSet::value_t &rhs)
 Product (concatenation) of expressions/labels/polynomials/weights. More...
 
template<typename ExpSet >
ExpSet::value_t multiply (const ExpSet &rs, const typename ExpSet::value_t &r, int min, int max)
 
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 >
fresh_automaton_t_of< Aut, partial_identity_context_t_of< Aut > > partial_identity (const Aut &aut)
 Create a partial identity transducer from aut. More...
 
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) -> fresh_automaton_t_of< Aut, detail::nullableset_context_t< context_t_of< Aut >>>
 Apply subword_here() to a copy of aut. More...
 
template<typename Aut >
std::ostream & print (const Aut &aut, std::ostream &out, const std::string &format)
 
template<typename ValueSet >
std::ostream & print (const ValueSet &vs, const typename ValueSet::value_t &v, std::ostream &o, format fmt)
 Applies to (ValueSet, Value, ostream, string): for expansionset, polynomialset, expressionset, and weightset. More...
 
template<typename PolynomialSet >
std::ostream & list (const PolynomialSet &ps, const typename PolynomialSet::value_t &p, std::ostream &o)
 
template<std::size_t Tape, typename Aut >
auto project (const Aut &aut) -> mutable_automaton< detail::project_context< Tape, context_t_of< Aut >>>
 
template<typename Aut >
auto proper (const Aut &aut, direction dir=direction::backward, bool prune=true, const std::string &algo="auto") -> fresh_automaton_t_of< Aut, detail::proper_context< context_t_of< Aut >>>
 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 distances 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 &cs) -> quotient_t< 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 GenSet , typename RandomGenerator = std::default_random_engine>
wordset< GenSet >::value_t random_label (const wordset< GenSet > &ls, RandomGenerator &gen=RandomGenerator())
 
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>
expressionset< Context >::value_t random_label (const expressionset< Context > &rs, RandomGenerator &gen=RandomGenerator())
 
template<typename Ctx >
mutable_automaton< Ctx > random_automaton (const Ctx &ctx, unsigned num_states, float density=0.1, unsigned num_initial=1, unsigned num_final=1, float loop_chance=0.0)
 
template<typename Ctx >
mutable_automaton< Ctx > random_automaton_deterministic (const Ctx &ctx, unsigned num_states)
 
template<typename Context >
auto read_label (const Context &ctx, std::istream &is, bool quoted=false) -> 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::vector< state_t_of< Aut > > reverse_postorder (const Aut &aut)
 Get all states in reverse postorder. More...
 
scc_algo_t scc_algo (const std::string &algo)
 
template<typename Aut >
const detail::components_t< Aut > strong_components (const Aut &aut, scc_algo_t algo=scc_algo_t::tarjan_iterative)
 Find all strongly connected components of aut. More...
 
template<typename Aut >
fresh_automaton_t_of< Aut > aut_of_component (const detail::component_t< Aut > &com, const Aut &aut)
 Generate a subautomaton corresponding to an SCC. More...
 
template<typename Aut >
scc_automaton< Aut > scc (const Aut &aut, const std::string &algo="auto")
 Get scc_automaton from aut. More...
 
template<typename Aut >
std::size_t num_components (const scc_automaton< Aut > &aut)
 Get number of strongly connected components. More...
 
template<typename Aut >
std::size_t num_components (const Aut &)
 
template<typename Aut >
filter_automaton< scc_automaton< Aut > > component (const scc_automaton< Aut > &aut, unsigned num)
 An SCC as a subautomaton. More...
 
template<typename Aut >
void component (const Aut &, unsigned)
 
template<typename Aut >
partition_automaton< scc_automaton< Aut > > condense (const scc_automaton< Aut > &aut)
 Create a condensation of automaton with each its state who is a strongly connected component of aut. More...
 
template<typename Aut >
partition_automaton< Aut > condense (const Aut &)
 
template<typename Automaton >
detail::enumerater< Automaton >::polynomial_t shortest (const Automaton &aut, boost::optional< unsigned > num={}, boost::optional< unsigned > len={})
 The approximated behavior of an automaton. More...
 
template<typename Automaton >
detail::enumerater< Automaton >::polynomial_t enumerate (const Automaton &aut, unsigned len)
 The approximated behavior of an automaton. 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 ExpSet >
rat::expression_polynomial_t< ExpSet > split (const ExpSet &rs, const typename ExpSet::value_t &e)
 Split an expression. More...
 
template<typename PolynomialSet >
PolynomialSet::value_t split_polynomial (const PolynomialSet &ps, const typename PolynomialSet::value_t &p)
 Split a polynomial of expressions, given the polynomialset. More...
 
template<typename ExpSet >
rat::expression_polynomial_t< ExpSet > split (const ExpSet &rs, const rat::expression_polynomial_t< ExpSet > &p)
 Split a polynomial of expressions, given the expressionset. 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 ExpSet >
Aut standard (const ExpSet &rs, const typename ExpSet::value_t &r)
 Build a standard automaton from an expression. More...
 
template<typename ExpSet >
unsigned star_height (const typename ExpSet::value_t &e)
 Star height of an expression. More...
 
template<typename ExpSet >
ExpSet::value_t star_normal_form (const ExpSet &rs, const typename ExpSet::value_t &e)
 Star-normal form of an expression. More...
 
template<typename Aut >
Aut & star_here (Aut &res)
 In-place star of a standard automaton. More...
 
template<typename Aut >
fresh_automaton_t_of< Aut > 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 >
auto synchronize (const Aut &aut) -> decltype(detail::synchronize(aut))
 Synchronize the transducer. More...
 
template<typename Aut >
bool is_synchronized_by (const Aut &aut, const word_t_of< Aut > &w)
 Whether w synchronizes automaton aut. More...
 
template<typename Aut >
bool is_synchronizing (const Aut &aut)
 Whether this automaton is synchronizing, i.e., has synchronizing words. More...
 
template<typename Aut >
word_t_of< Aut > synchronizing_word (const Aut &aut, const std::string &algo="greedy")
 Return a synchronizing word for aut using algo algo. More...
 
template<typename Aut , typename ExpSet >
Aut thompson (const context_t_of< Aut > &ctx, const ExpSet &rs, const typename ExpSet::value_t &r)
 Build a Thompson automaton from an expression. More...
 
template<typename Aut , typename ExpSet >
Aut thompson (const ExpSet &rs, const typename ExpSet::value_t &r)
 Build a Thompson automaton from an expression. More...
 
template<typename AutPtr >
std::ostream & tikz (const AutPtr &aut, std::ostream &out)
 Print automaton to TikZ format. More...
 
template<typename Aut >
Aut & eliminate_state_here (Aut &res, state_t_of< Aut > s=Aut::element_type::null_state())
 In place removal of state s from automaton res. More...
 
template<typename Aut >
auto eliminate_state (const Aut &aut, state_t_of< Aut > s=Aut::element_type::null_state()) -> fresh_automaton_t_of< Aut >
 A copy of automaton res without the state s. More...
 
template<typename Aut , typename Profiler , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t to_expression (Aut &a, Profiler &profiler)
 
template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t to_expression_heuristic (const Aut &aut, vcsn::rat::identities ids, to_expression_heuristic_t algo)
 
template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t to_expression (const Aut &aut, vcsn::rat::identities ids, to_expression_heuristic_t algo)
 
template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t to_expression (const Aut &a, vcsn::rat::identities ids, const std::string &algo)
 
template<typename ExpressionSet >
ExpressionSet::value_t to_expression (const ExpressionSet &rs, const letter_class_t &letters, bool accept=true)
 An expression matching one letter in a letter class. More...
 
template<typename Aut >
Aut transpose (const transpose_automaton< Aut > &aut)
 
template<typename Aut >
transpose_automaton< Aut > transpose (Aut aut)
 
template<typename PolynomialSet >
mutable_automaton< detail::free_context< context_t_of< PolynomialSet > > > trie (const PolynomialSet &ps, const typename PolynomialSet::value_t &p)
 Make a trie-like mutable_automaton for a finite series given as a polynomial. More...
 
template<typename PolynomialSet >
mutable_automaton< detail::free_context< context_t_of< PolynomialSet > > > cotrie (const PolynomialSet &ps, const typename PolynomialSet::value_t &p)
 Make a cotrie-like mutable_automaton for a finite series given as a polynomial. More...
 
template<typename PolynomialSet >
mutable_automaton< detail::free_context< context_t_of< PolynomialSet > > > trie (const PolynomialSet &ps, std::istream &is)
 Make a trie-like mutable_automaton for a finite series read from a stream. More...
 
template<typename PolynomialSet >
mutable_automaton< detail::free_context< context_t_of< PolynomialSet > > > cotrie (const PolynomialSet &ps, std::istream &is)
 Make a trie-like mutable_automaton for a finite series read from a stream. More...
 
template<typename... Ctx>
auto tuple_context (Ctx &&...ctx) -> context< tupleset< labelset_t_of< Ctx >...>, join_t< weightset_t_of< Ctx >...>>
 
template<typename ValueSet , typename... ValueSets>
ValueSet::value_t tuple (const ValueSet &vs, const typename ValueSets::value_t &...v)
 
template<typename... ExpSets>
auto tuple_expressionset (const ExpSets &...rss) -> expressionset< decltype(tuple_context(rss.context()...))>
 
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<typename Aut >
Aut universal (const Aut &a)
 
template<typename Aut >
auto weight_series (const Aut &a) -> weight_t_of< Aut >
 
template<typename Aut , typename ExpSet >
Aut zpc (const context_t_of< Aut > &ctx, const ExpSet &rs, const typename ExpSet::value_t &r, const std::string &algo="auto")
 Build a ZPC automaton from an expression. More...
 
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 >
auto join (ValueSet1 vs1, ValueSet2 vs2) -> decltype(detail::join_(vs1, vs2, 0))
 The join of two valuesets. More...
 
template<typename ValueSet1 , typename ValueSet2 , typename ValueSet3 , typename... VSs>
auto join (ValueSet1 vs1, ValueSet2 vs2, ValueSet3 vs3, VSs &&...vs) -> decltype(join(join(vs1, vs2), vs3, std::forward< VSs >(vs)...))
 The join of three (or more) valuesets. More...
 
template<typename Context >
mutable_automaton< Context > make_mutable_automaton (const Context &ctx)
 
template<typename Aut >
auto make_partition_automaton (const fresh_automaton_t_of< Aut > &res, const Aut &input, const typename detail::partition_automaton_impl< Aut >::origins_t origins) -> partition_automaton_t< Aut >
 Build a partition_automaton. More...
 
template<typename Aut >
auto make_partition_automaton (const fresh_automaton_t_of< Aut > &res, const partition_automaton< Aut > &input, const typename detail::partition_automaton_impl< Aut >::origins_t origins) -> partition_automaton_t< Aut >
 Build a partition_automaton of a partition_automaton: smash into a single level partition_automaton. More...
 
template<typename Aut >
auto make_partition_automaton (const fresh_automaton_t_of< transpose_automaton< Aut >> &res, const transpose_automaton< Aut > &input, const typename detail::partition_automaton_impl< Aut >::origins_t origins) -> transpose_automaton< partition_automaton_t< Aut >>
 Build a partition_automaton of a transpose_automaton: smash into a transpose_automaton of a partition_automaton. More...
 
template<typename Context >
expressionset< Context > make_expressionset (const Context &ctx, rat::identities identities={})
 Shorthand to expressionset constructor. More...
 
template<typename Ctx1 , typename Ctx2 >
auto meet (const expressionset< Ctx1 > &a, const expressionset< Ctx2 > &b) -> expressionset< meet_t< Ctx1, Ctx2 >>
 The meet of two expressionsets. More...
 
template<typename ExpSet >
ExpSet::value_t transpose (const ExpSet &rs, const typename ExpSet::value_t &v)
 A expression that denotes the transposition of v. More...
 
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)
 
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 Container >
bool same_domain (const Container &x, const Container &y)
 Check that two associative containers have the same keys. More...
 
template<typename Cont , typename Pred >
container_filter_range< Cont, Pred > make_container_filter_range (const Cont &cont, Pred pred)
 
template<typename... Sequences>
cross_sequences< Sequences...> cross (Sequences &&...seqs)
 
template<typename... Sequences>
cross_sequences< Sequences...> cross_tuple (const std::tuple< Sequences...> &seqs)
 
template<typename T , typename Allocator = std::allocator<T>>
ATTRIBUTE_PURE bool has (const std::deque< T, Allocator > &s, const T &e)
 Whether e is member of s. More...
 
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...
 
bool operator< (empty_t, empty_t)
 
bool operator== (empty_t, empty_t)
 
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...
 
std::string to_string (format i)
 Wrapper around operator<<. More...
 
std::istream & operator>> (std::istream &is, format &i)
 Read from string form. More...
 
std::ostream & operator<< (std::ostream &os, format i)
 Output in string form. More...
 
void hash_combine_hash (std::size_t &seed, size_t h)
 
template<typename T >
void hash_combine (std::size_t &seed, const T &v)
 
template<typename T >
auto hash_value (const T &v) -> decltype(std::hash< T >
 Following the naming convention of Boost. More...
 
return hasher (v)
 
template<typename C >
C::mapped_type getargs (const std::string &kind, const C &map, const std::string &key)
 Find a correspondance in a map. More...
 
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 T , typename U >
bool has (const std::initializer_list< T > &s, const U &e)
 Whether e is in s. More...
 
template<typename Key , typename Value , typename Compare , typename Alloc >
bool has (const std::map< Key, Value, Compare, Alloc > &s, const Key &e)
 Whether e is in 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 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 >
symbol sname ()
 
template<typename T >
symbol sname (T &)
 
template<typename... Args>
signature ssignature ()
 Static signature. More...
 
template<typename T >
symbol 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 T , typename Container = std::deque<T>>
ATTRIBUTE_PURE bool has (const std::queue< T, Container > &s, const T &e)
 Whether e is member of s. 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 >
std::set< T, Compare, Alloc > set_difference (const std::set< T, Compare, Alloc > &set1, const std::set< T, Compare, Alloc > &set2)
 The set of members of set1 that are not members of set2. More...
 
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 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 Container >
bool subset (const Container &set1, const Container &set2) ATTRIBUTE_PURE
 Whether set1 ⊆ set2. More...
 
std::ostream & operator<< (std::ostream &os, const signature &sig)
 Output a string, escaping special characters. More...
 
std::string bracketed (std::istream &i, char lbracket, 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...
 
template<typename... Args>
ATTRIBUTE_NORETURN void fail_reading (std::istream &is, Args &&...args)
 Throw an exception after failing to read from is. More...
 
char get_char (std::istream &i)
 Read a single char, with possible -escape support. More...
 
template<typename ValueSet , typename Value = typename ValueSet::value_t, typename... Args>
auto to_string (const ValueSet &vs, const Value &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...
 
std::string operator+ (symbol l, const char *r)
 
std::string operator+ (const char *l, symbol r)
 
std::string operator+ (symbol l, const std::string &r)
 
std::string operator+ (const std::string &l, symbol r)
 
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 bool has (const std::vector< T, Alloc > &s, const T &e)
 Whether e is member of s. More...
 
template<typename Label , typename Weight >
auto label_of (const welement< Label, Weight > &m) -> decltype(m.label())
 
template<typename Label , typename Weight >
auto weight_of (const welement< Label, Weight > &m) -> decltype(m.weight())
 
template<typename Label , typename Weight >
void weight_set (welement< Label, Weight > &m, const Weight &w)
 
template<typename Label , typename Weight >
const Label & label_of (const std::pair< Label, Weight > &m)
 
template<typename Label , typename Weight >
const Weight & weight_of (const std::pair< Label, Weight > &m)
 
template<typename Label , typename Weight >
Label & label_of (std::pair< Label, Weight > &m)
 
template<typename Label , typename Weight >
void weight_set (std::pair< Label, Weight > &m, const Weight &w)
 
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... Sequences>
zip_sequences_padded< zip_sequences< Sequences...> > zip_with_padding (const std::tuple< typename Sequences::value_type...> &pad, const Sequences &...seq)
 
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
 

Variables

 v
 
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 48 of file fwd.hh.

template<typename T >
using vcsn::base_t = typedef remove_cv_t<remove_reference_t<T>>

T without reference or const/volatile qualifiers.

Definition at line 12 of file traits.hh.

template<bool B>
using vcsn::bool_constant = typedef std::integral_constant<bool, B>

Definition at line 35 of file type_traits.hh.

template<bool B, typename T , typename U >
using vcsn::conditional_t = typedef typename std::conditional<B, T, U>::type

Definition at line 13 of file type_traits.hh.

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

Definition at line 45 of file traits.hh.

template<typename Aut >
using vcsn::delay_automaton = typedef std::shared_ptr<detail::delay_automaton_impl<Aut>>

An automaton wrapper that presents the delay automaton.

Definition at line 26 of file fwd.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 246 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 499 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 16 of file type_traits.hh.

template<typename Aut >
using vcsn::expression_automaton = typedef std::shared_ptr<detail::expression_automaton_impl<Aut>>

An expression automaton as a shared pointer.

Definition at line 60 of file fwd.hh.

template<typename Context >
using vcsn::expressionset = typedef weightset_mixin<rat::expressionset_impl<Context>>

Definition at line 200 of file fwd.hh.

Definition at line 49 of file fwd.hh.

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

Definition at line 323 of file filter.hh.

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

A focus automaton as a shared pointer.

Definition at line 41 of file fwd.hh.

template<typename Aut , typename Context = context_t_of<Aut>>
using vcsn::fresh_automaton_t_of = typedef typename Aut::element_type::template fresh_automaton_t<Context>

Definition at line 57 of file traits.hh.

template<typename T , typename U >
using vcsn::is_same_t = typedef typename std::is_same<T, U>::type

Definition at line 19 of file type_traits.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 79 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 46 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 47 of file traits.hh.

using vcsn::letter_class_t = typedef std::set<std::pair<std::string, std::string>>

A set of letter ranges.

Definition at line 103 of file fwd.hh.

template<typename ValueSet >
using vcsn::letter_t_of = typedef typename labelset_t_of<base_t<ValueSet>>::letter_t

Definition at line 61 of file traits.hh.

Definition at line 50 of file fwd.hh.

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

Definition at line 143 of file context.hh.

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

Definition at line 24 of file fwd.hh.

template<typename Context >
using vcsn::name_automaton = typedef std::shared_ptr<detail::name_automaton_impl<Context>>

Definition at line 34 of file fwd.hh.

Definition at line 51 of file fwd.hh.

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

Definition at line 236 of file pair.hh.

template<typename Aut >
using vcsn::partial_identity_context_t_of = typedef typename detail::partial_identity_context<Aut>::context_t

Definition at line 33 of file partial-identity.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 140 of file partition-automaton.hh.

template<typename Aut >
using vcsn::partition_automaton_t = typedef typename detail::partition_automaton_t_impl<Aut>::type

The return type when calling quotient on Aut.

Definition at line 199 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 47 of file fwd.hh.

template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
using vcsn::polynomialset = typedef weightset_mixin<detail::polynomialset_impl<Context, Kind>>

Definition at line 63 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 532 of file conjunction.hh.

Definition at line 52 of file fwd.hh.

Definition at line 53 of file fwd.hh.

template<typename Aut >
using vcsn::quotient_t = typedef partition_automaton_t<Aut>

The return type when calling quotient on Aut.

Definition at line 119 of file quotient.hh.

Definition at line 54 of file fwd.hh.

template<typename T >
using vcsn::remove_const_t = typedef typename std::remove_const<T>::type

Definition at line 22 of file type_traits.hh.

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

Definition at line 25 of file type_traits.hh.

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

Definition at line 28 of file type_traits.hh.

Definition at line 55 of file fwd.hh.

template<typename Aut >
using vcsn::scc_automaton = typedef std::shared_ptr<detail::scc_automaton_impl<Aut>>

Definition at line 627 of file scc.hh.

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

Definition at line 48 of file traits.hh.

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

Definition at line 19 of file accessible.hh.

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

An internalized string.

We do use different modules, since we dlopen plugins. For a while, we had the illusion that it work properly, but that's only because we were using the default operator< which actually compares the strings, not the address of the symbols. So we did have synonymous symbols, which the code gracefully accepted.

Play it safe and make our symbols unique.

Definition at line 23 of file symbol.hh.

template<typename Aut >
using vcsn::synchronized_automaton = typedef std::shared_ptr<detail::synchronized_automaton_impl<Aut>>

An automaton wrapper that presents the synchronized automaton.

Definition at line 83 of file fwd.hh.

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

Definition at line 49 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 100 of file fwd.hh.

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

A tuple automaton as a shared pointer.

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

template<size_t I, typename T >
using vcsn::tuple_element_t = typedef typename std::tuple_element<I, T>::type

C++14.

Definition at line 14 of file tuple.hh.

template<typename... LabelSets>
using vcsn::tupleset = typedef weightset_mixin<detail::tupleset_impl<LabelSets...>>

Definition at line 27 of file fwd.hh.

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

Definition at line 50 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 51 of file traits.hh.

template<typename Key , typename Value , wet_kind_t Kind = detail::wet_kind<Key, Value>(), typename Compare = std::less<Key>, typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
using vcsn::wet = typedef detail::wet_impl<Kind, Key, Value, Compare, Hash, KeyEqual>

Definition at line 780 of file wet.hh.

template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
using vcsn::wet_of = typedef wet<label_t_of<Context>, weight_t_of<Context>, Kind, vcsn::less<labelset_t_of<Context>>, vcsn::hash<labelset_t_of<Context>>, vcsn::equal_to<labelset_t_of<Context>>>

The corresponding wet for a LabelSet -> WeightSet context.

Definition at line 791 of file wet.hh.

template<typename ValueSet >
using vcsn::word_t_of = typedef typename labelset_t_of<base_t<ValueSet>>::word_t

Definition at line 65 of file traits.hh.

Definition at line 56 of file fwd.hh.

Definition at line 57 of file fwd.hh.

Enumeration Type Documentation

enum vcsn::direction
strong

Orientation.

Enumerator
forward 

Looking downstream.

backward 

Looking upstream.

Definition at line 9 of file direction.hh.

enum vcsn::scc_algo_t
strong
Enumerator
dijkstra 
tarjan_iterative 
tarjan_recursive 
kosaraju 

Definition at line 463 of file scc.hh.

Enumerator
ABSVAL 

valid iff proper succeeds on the "absolute value" of the automaton

NON_STARRABLE 
STARRABLE 

always valid.

TOPS 

valid iff proper succeeds.

Definition at line 5 of file star-status.hh.

Enumerator
best 
delgado 
delgado_label 
naive 

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

enum vcsn::wet_kind_t
strong
Enumerator
bitset 
map 
set 
unordered_map 

Definition at line 168 of file wet.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)

Accessible part of an automaton.

Definition at line 134 of file accessible.hh.

References accessible_states(), and filter().

Referenced by vcsn::dyn::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 &  aut,
bool  strict = true 
)

The set of accessible states, including pre(), and possibly post().

Parameters
autthe automaton.
strictwhether to evaluate lazy states.

Definition at line 27 of file accessible.hh.

Referenced by accessible(), coaccessible_states(), num_accessible_states(), suffix_here(), and useful_states().

int vcsn::address ( const void *  t)
inline

Name pointers, to make them easier to read.

Definition at line 22 of file memory.hh.

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

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

Definition at line 33 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 40 of file memory.hh.

References address().

Here is the call graph for this function:

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

Definition at line 404 of file tuple.hh.

template<typename Aut >
std::vector<std::vector<weight_t_of<Aut> > > vcsn::all_distances ( const Aut &  aut)
template<typename Aut >
word_t_of<Aut> vcsn::ambiguous_word ( const Aut &  aut)

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

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

Referenced by vcsn::dyn::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 397 of file tuple.hh.

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

Check equivalence between Boolean automata on a free labelset.

Check equivalence between automata on fields, or Z.

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

References difference(), is_useless(), and realtime().

Referenced by are_equivalent().

Here is the call graph for this function:

template<typename ExpSet1 , typename ExpSet2 >
auto vcsn::are_equivalent ( const ExpSet1 &  rs1,
const typename ExpSet1::value_t  r1,
const ExpSet2 &  rs2,
const typename ExpSet2::value_t  r2 
) -> bool

Check equivalence between two expressions.

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

References are_equivalent(), derived_term(), and strip().

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

Here is the call graph for this function:

template<typename Aut1 , typename Aut2 >
bool vcsn::are_isomorphic ( const Aut1 &  a1,
const Aut2 &  a2 
)

Definition at line 686 of file are-isomorphic.hh.

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

template<typename Aut >
fresh_automaton_t_of<Aut> vcsn::aut_of_component ( const detail::component_t< Aut > &  com,
const Aut &  aut 
)
inline

Generate a subautomaton corresponding to an SCC.

Definition at line 512 of file scc.hh.

References has(), and make_fresh_automaton().

Referenced by is_cycle_ambiguous().

Here is the call graph for this function:

std::string vcsn::bracketed ( std::istream &  i,
char  lbracket,
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::detail::polynomialset_impl< Context, Kind >::conv_weight().

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 vcsn::rat::ctx(), and require().

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

Here is the call graph for this function:

Definition at line 248 of file char.hh.

Definition at line 256 of file char.hh.

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

Coaccessible part of an automaton.

Definition at line 142 of file accessible.hh.

References coaccessible_states(), and filter().

Referenced by vcsn::dyn::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,
bool  strict = true 
)

The set of coaccessible states, including post(), and possibly pre().

Parameters
athe automaton.
strictwhether to evaluate lazy states.

Definition at line 64 of file accessible.hh.

References accessible_states(), and transpose().

Referenced by coaccessible(), is_ambiguous(), is_partial_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 263 of file determinize.hh.

Referenced by minimize_brzozowski().

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

Definition at line 515 of file determinize.hh.

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 13 of file unordered_map.hh.

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

Definition at line 74 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 26 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 47 of file complement.hh.

References complement_here(), and copy().

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

Here is the call graph for this function:

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

Definition at line 20 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 61 of file complete.hh.

References complete_here(), and copy().

Referenced by vcsn::dyn::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 13 of file complete.hh.

References has().

Referenced by complete().

Here is the call graph for this function:

template<typename Aut >
filter_automaton<scc_automaton<Aut> > vcsn::component ( const scc_automaton< Aut > &  aut,
unsigned  num 
)
inline

An SCC as a subautomaton.

Parameters
autthe input automaton.
numthe number of the scc.

Definition at line 698 of file scc.hh.

template<typename Aut >
void vcsn::component ( const Aut &  ,
unsigned   
)
inline

Definition at line 706 of file scc.hh.

template<typename Lhs , typename Rhs , unsigned OutTape = 1, unsigned InTape = 0>
auto vcsn::compose ( Lhs &  lhs,
Rhs &  rhs 
) -> typename detail::composer<focus_automaton<OutTape, Lhs>, focus_automaton<InTape, Rhs>>::automaton_t

Build the (accessible part of the) composition.

Definition at line 290 of file compose.hh.

References vcsn::detail::insplit(), and vcsn::detail::make_composer().

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

Here is the call graph for this function:

template<typename Aut >
partition_automaton<scc_automaton<Aut> > vcsn::condense ( const scc_automaton< Aut > &  aut)
inline

Create a condensation of automaton with each its state who is a strongly connected component of aut.

map from state of aut to state(component) of new automaton.

Definition at line 736 of file scc.hh.

template<typename Aut >
partition_automaton<Aut> vcsn::condense ( const Aut &  )
inline

Definition at line 770 of file scc.hh.

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

Build the (accessible part of the) conjunction.

Definition at line 553 of file conjunction.hh.

References make_product_automaton(), and vcsn::detail::meet_automata().

Referenced by vcsn::dyn::detail::conjunction_(), vcsn::dyn::detail::conjunction_expression(), vcsn::dyn::detail::conjunction_repeated(), difference(), has_twins_property(), info(), is_ambiguous(), and is_cycle_ambiguous_scc().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::conjunction ( const Aut &  aut,
unsigned  n 
) -> fresh_automaton_t_of<Aut>

Definition at line 800 of file conjunction.hh.

References vcsn::detail::product_automaton_impl< Aut, Auts >::conjunction(), make_fresh_automaton(), and vcsn::detail::automaton_decorator< tuple_automaton< Aut, Auts...> >::strip().

Here is the call graph for this function:

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

Intersection/Hadamard product of expressions.

Definition at line 863 of file conjunction.hh.

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

Build the (accessible part of the) conjunction.

Definition at line 567 of file conjunction.hh.

References make_product_automaton(), and vcsn::detail::meet_automata().

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

Here is the call graph for this function:

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)...))
inline
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>, typename KeepState , typename KeepTrans >
AutOut vcsn::copy ( const AutIn &  input,
KeepState  keep_state,
KeepTrans  keep_trans 
)
inline
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>, typename KeepState >
AutOut vcsn::copy ( const AutIn &  input,
KeepState  keep_state 
)
inline

A copy of input.

Definition at line 267 of file copy.hh.

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

A copy of input.

Definition at line 281 of file copy.hh.

template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
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 296 of file copy.hh.

References has().

Here is the call graph for this function:

template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
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 309 of file copy.hh.

References has().

Here is the call graph for this function:

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

Copy selected states and transitions of an automaton.

Precondition
AutIn <: AutOut.

Definition at line 126 of file copy.hh.

References copy(), and make_copier().

Referenced by copy_into(), vcsn::dyn::left_mult(), multiply(), vcsn::detail::epsilon_remover< Aut, has_one >::operator()(), project(), vcsn::dyn::right_mult(), subword(), and union_here().

Here is the call graph for this function:

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

Copy the selected states an automaton.

Precondition
AutIn <: AutOut.

Definition at line 138 of file copy.hh.

References copy_into().

Here is the call graph for this function:

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

Copy an automaton.

Precondition
AutIn <: AutOut.

Definition at line 149 of file copy.hh.

References copy_into().

Here is the call graph for this function:

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

Copy an automaton.

Precondition
AutIn <: AutOut.

Definition at line 161 of file copy.hh.

References copy(), and make_copier().

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 126 of file standard.hh.

References standard(), and transpose().

Referenced by normalize().

Here is the call graph for this function:

template<typename PolynomialSet >
mutable_automaton<detail::free_context<context_t_of<PolynomialSet> > > vcsn::cotrie ( const PolynomialSet &  ps,
const typename PolynomialSet::value_t &  p 
)

Make a cotrie-like mutable_automaton for a finite series given as a polynomial.

Parameters
psthe polynomialset
pthe polynomial that specifies the series.

Definition at line 168 of file trie.hh.

template<typename PolynomialSet >
mutable_automaton<detail::free_context<context_t_of<PolynomialSet> > > vcsn::cotrie ( const PolynomialSet &  ps,
std::istream &  is 
)

Make a trie-like mutable_automaton for a finite series read from a stream.

Parameters
psthe polynomialset
isthe stream to read

Definition at line 225 of file trie.hh.

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 102 of file has-twins-property.hh.

Referenced by has_twins_property().

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

Definition at line 272 of file cross.hh.

Referenced by vcsn::detail::tupleset_impl< ValueSets >::genset_().

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

Definition at line 279 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 86 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 19 of file de-bruijn.hh.

References vcsn::rat::ctx(), vcsn::detail::front(), and require().

Referenced by vcsn::dyn::de_bruijn(), 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< ExpSet >::operator()().

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 ExpSet >
rat::expression_polynomial_t< ExpSet > vcsn::derivation ( const ExpSet &  rs,
const typename ExpSet::value_t &  e,
label_t_of< ExpSet >  a,
bool  breaking = false 
)

Derive an expression wrt to a letter.

Definition at line 267 of file derivation.hh.

References split().

Referenced by vcsn::dyn::derivation(), derivation(), vcsn::ctx::detail::register_functions_is_free(), vcsn::dyn::to_automaton(), vcsn::detail::derived_termer< ExpSet >::via_derivation(), and vcsn::rat::derivation_visitor< ExpSet >::visit_tuple< bool, Dummy >::work_().

Here is the call graph for this function:

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

Derive a polynomial of expressions wrt to a letter.

Definition at line 285 of file derivation.hh.

References derivation(), label_of(), vcsn::rat::make_expression_polynomialset(), and weight_of().

Here is the call graph for this function:

template<typename ExpSet , typename = vcsn::enable_if_t<!std::is_same<word_t_of<ExpSet>, label_t_of<ExpSet>> ::value>>
rat::expression_polynomial_t<ExpSet> vcsn::derivation ( const ExpSet &  rs,
const typename ExpSet::value_t &  e,
const word_t_of< ExpSet > &  l,
bool  breaking = false 
)

Derive an expression wrt to a word.

Do not enable this overload when labels and words are the same thing (e.g., when working on a wordset), since in this case we fail with an ambiguous overload. Thanks to this enable_if, only the first overload (derivation wrt a label) is enabled, and the compilation fails but this time with the right diagnostic: the labelset must be free.

Definition at line 314 of file derivation.hh.

References derivation(), and require().

Here is the call graph for this function:

template<typename ExpSet >
vcsn::enable_if_t<labelset_t_of<ExpSet>::is_free(), expression_automaton<mutable_automaton<typename ExpSet::context_t> > > vcsn::derived_term ( const ExpSet &  rs,
const typename ExpSet::value_t &  r,
const std::string &  algo = "auto" 
)
inline

The derived-term automaton, for free labelsets.

Parameters
rsthe expressionset
rthe expression
algothe algo to run: "auto", "derivation", or "expansion".

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

References vcsn::detail::rs.

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

template<typename ExpSet >
vcsn::enable_if_t<!labelset_t_of<ExpSet>::is_free(), expression_automaton<mutable_automaton<typename ExpSet::context_t> > > vcsn::derived_term ( const ExpSet &  rs,
const typename ExpSet::value_t &  r,
const std::string &  algo = "auto" 
)
inline

The derived-term automaton, for non free labelsets.

Parameters
rsthe expressionset
rthe expression
algothe algo to run: "auto", "derivation", or "expansion".

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

References vcsn::detail::derived_term_algo::expansion, require(), and vcsn::detail::rs.

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 504 of file determinize.hh.

Referenced by difference().

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

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

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

References complement(), complete(), conjunction(), determinize_weighted(), is_complete(), is_deterministic(), and strip().

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

Here is the call graph for this function:

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

Difference of expressions.

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

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

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 vcsn::rat::ctx(), and require().

Referenced by vcsn::dyn::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<typename Context >
mutable_automaton<Context> vcsn::double_ring ( const Context &  ctx,
unsigned  n,
const std::vector< unsigned > &  finals 
)

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

References vcsn::rat::ctx(), vcsn::detail::make_vector(), and require().

Referenced by vcsn::dyn::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 fail_reading(), and str_escape().

Referenced by vcsn::ast::context_parser::automaton_(), vcsn::ast::context_parser::context_(), vcsn::detail::log_impl::conv(), vcsn::detail::q_impl::conv(), vcsn::detail::tupleset_impl< ValueSets >::conv_(), vcsn::detail::genset_labelset< GenSet >::convs_(), vcsn::detail::tupleset_impl< ValueSets >::eat_separator_(), vcsn::ast::context_parser::expansionset_(), vcsn::ast::context_parser::expressionset_(), vcsn::char_letters::get_letter(), vcsn::ast::context_parser::labelset_(), vcsn::detail::rmin_impl::make(), vcsn::detail::zmin_impl::make(), vcsn::detail::nmin_impl::make(), vcsn::detail::z_impl::make(), vcsn::detail::f2_impl::make(), vcsn::detail::b_impl::make(), vcsn::detail::log_impl::make(), vcsn::detail::r_impl::make(), vcsn::detail::q_impl::make(), vcsn::set_alphabet< L >::make(), vcsn::detail::qmp_impl::make(), vcsn::letterset< GenSet >::make(), vcsn::wordset< GenSet >::make(), vcsn::context< Tape, full_context_t >::make(), vcsn::rat::expressionset_impl< Context >::make(), vcsn::detail::tupleset_impl< ValueSets >::make(), vcsn::nullableset< LabelSet >::make(), vcsn::detail::polynomialset_impl< Context, Kind >::make(), operator>>(), vcsn::ast::context_parser::parameters_(), vcsn::ast::context_parser::polynomialset_(), vcsn::ast::context_parser::seriesset_(), vcsn::ast::context_parser::tuple_(), 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 48 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 343 of file efsm.hh.

Referenced by print(), and vcsn::dyn::read_automaton().

template<typename Aut >
auto vcsn::eliminate_state ( const Aut &  aut,
state_t_of< Aut >  s = Aut::element_type::null_state() 
) -> fresh_automaton_t_of<Aut>

A copy of automaton res without the state s.

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

References copy(), eliminate_state_here(), make_copier(), and require().

Referenced by vcsn::dyn::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 = Aut::element_type::null_state() 
)

In place removal of state s from automaton res.

Delgado profiler not fit for lao with non expression weightset.

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

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

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  len 
)
inline

The approximated behavior of an automaton.

Parameters
autthe automaton whose behavior to approximate
lenmaximum length of words looked for.

Definition at line 262 of file shortest.hh.

References shortest().

Here is the call graph for this function:

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

Definition at line 99 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 ExpSet >
ExpSet::value_t vcsn::expand ( const ExpSet &  rs,
const typename ExpSet::value_t &  e 
)
inline

Expand a typed expression.

Definition at line 151 of file expand.hh.

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

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

Definition at line 106 of file prefix.hh.

References copy(), and factor_here().

Referenced by vcsn::dyn::factor(), and vcsn::detail::polynomialset_impl< Context, Kind >::ldiv().

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 99 of file prefix.hh.

References prefix_here(), and suffix_here().

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 204 of file grail.hh.

Referenced by vcsn::dyn::read_automaton().

template<typename... Args>
ATTRIBUTE_NORETURN void vcsn::fail_reading ( std::istream &  is,
Args &&...  args 
)
inline

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 62 of file stream.hh.

References str_escape().

Referenced by vcsn::ast::check_eof(), vcsn::detail::nmin_impl::conv(), vcsn::detail::min_plus_impl< unsigned int >::conv(), vcsn::detail::z_impl::conv(), eat(), and 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 329 of file filter.hh.

Referenced by accessible(), coaccessible(), and trim().

template<unsigned Tape, typename Aut >
focus_automaton< Tape, Aut > vcsn::focus ( Aut  aut)
inline

Definition at line 341 of file focus.hh.

char vcsn::get_char ( std::istream &  i)
inline

Read a single char, with possible -escape support.

EOF is an error.

Definition at line 78 of file stream.hh.

References require().

Referenced by vcsn::char_letters::get_letter(), and vcsn::string_letters::get_letter().

Here is the call graph for this function:

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

Return the contents of file.

Definition at line 65 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 
)

The union of two sets.

Definition at line 49 of file set.hxx.

template<typename C >
C::mapped_type vcsn::getargs ( const std::string &  kind,
const C &  map,
const std::string &  key 
)

Find a correspondance in a map.

Meant for string to enum mostly.

Parameters
kindthe nature of arguments, e.g., "identities"
mapa map from keys to values.
keythe value to look for.

Definition at line 21 of file getargs.hh.

References copy().

Referenced by vcsn::detail::efsmer< Aut >::arc_type_(), vcsn::detail::derived_term_algo::derived_term_algo(), vcsn::format::format(), vcsn::rat::operator>>(), print(), vcsn::dyn::read_automaton(), vcsn::dyn::read_efsm(), vcsn::dyn::read_expression(), vcsn::dyn::read_label(), vcsn::dyn::to_automaton(), to_expression(), and vcsn::ast::context_printer::visit().

Here is the call graph for this function:

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

Definition at line 272 of file grail.hh.

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

Whether e is in s.

Definition at line 12 of file initializer_list.hh.

template<typename T , typename Container = std::deque<T>>
ATTRIBUTE_PURE bool vcsn::has ( const std::queue< T, Container > &  s,
const T &  e 
)

Whether e is member of s.

Definition at line 13 of file queue.hh.

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 26 of file unordered_map.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 32 of file vector.hh.

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 37 of file unordered_set.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

Whether e is in s.

Definition at line 38 of file map.hh.

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.

Definition at line 7 of file set.hxx.

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

Whether a transducer has a bounded lag.

Parameters
[in]autthe transducer
Returns
whether the lag is bounded

Definition at line 148 of file has-bounded-lag.hh.

References vcsn::detail::bounded_lag_checker< Aut >::has_bounded_lag().

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 132 of file has-twins-property.hh.

References conjunction(), create_states_and_trans_(), cycle_identity(), is_cycle_ambiguous(), make_context(), make_mutable_automaton(), require(), strong_components(), tarjan_iterative, 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(), 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)

The set of values of a map.

Definition at line 46 of file map.hh.

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

template<typename Aut >
bool vcsn::in_situ_remover ( Aut &  aut,
bool  prune = true 
)
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< ExpSet >::operator()(), 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 A1 , typename A2 >
auto vcsn::infiltration ( const A1 &  a1,
const A2 &  a2 
) -> tuple_automaton<decltype(join_automata(a1, a2)), A1, A2>
inline

The (accessible part of the) infiltration product.

Definition at line 713 of file conjunction.hh.

References vcsn::detail::join_automata(), and make_product_automaton().

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

Here is the call graph for this function:

template<typename A1 , typename A2 , typename A3 , typename... Auts>
auto vcsn::infiltration ( const A1 &  a1,
const A2 &  a2,
const A3 &  a3,
const Auts &...  as 
) -> decltype(infiltration(infiltration(a1, a2), a3, as...))
inline

The (accessible part of the) infiltration product.

Definition at line 726 of file conjunction.hh.

References vcsn::detail::product_automaton_impl< Aut, Auts >::infiltration().

Here is the call graph for this function:

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

Infiltration product of expressions.

Definition at line 767 of file conjunction.hh.

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

Definition at line 274 of file info.hh.

References complement(), conjunction(), ECHO, infiltration(), info(), ldiv(), shuffle(), star(), sum(), vcsn::format::text, and tuple().

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 107 of file insplit.hh.

References vcsn::detail::insplit().

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

Here is the call graph for this function:

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 45 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.

Definition at line 15 of file set.hxx.

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

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.

Definition at line 31 of file set.hxx.

References intersection().

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

Here is the call graph for this function:

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

Whether all its states are accessible.

Definition at line 175 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 22 of file is-ambiguous.hh.

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

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)

Whether all its states are coaccessible.

Definition at line 182 of file accessible.hh.

References num_coaccessible_states().

Here is the call graph for this function:

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

Whether the transpositive automaton is deterministic.

Definition at line 73 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 114 of file is-ambiguous.hh.

References aut_of_component(), is_cycle_ambiguous_scc(), strong_components(), and tarjan_iterative.

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 142 of file is-ambiguous.hh.

References conjunction(), strong_components(), and tarjan_iterative.

Referenced by is_cycle_ambiguous().

Here is the call graph for this function:

template<typename 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 56 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)

Whether has no states.

Definition at line 192 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 17 of file is-functional.hh.

References compose(), insplit(), is_partial_identity(), and vcsn::detail::make_composer().

Here is the call graph for this function:

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

Check if the transitions are all letters.

Parameters
[in]autthe automaton
Returns
whether the transitions are letters

Definition at line 191 of file letterize.hh.

References vcsn::detail::is_letterized().

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 12 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 60 of file sort.hh.

References vcsn::detail::is_sorted_forward().

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

Here is the call graph for this function:

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

Whether transducer aut is equivalent to a partial identity function on all successful paths.

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 paths arriving to a given state, with longest common prefix eliminated.

Definition at line 21 of file is-partial-identity.hh.

References coaccessible_states(), has(), vcsn::detail::make_wordset(), vcsn::weightset_mixin< WeightSet >::mul(), and vcsn::detail::rs.

Referenced by is_functional().

Here is the call graph for this function:

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

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 48 of file is-proper.hh.

References vcsn::detail::is_proper_().

Referenced by info(), is_realtime(), vcsn::detail::is_valider< Aut, has_one >::is_valid_(), vcsn::detail::epsilon_remover< Aut, has_one >::operator()(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

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

Check if the automaton is realtime, i.e.

it is letterized and proper.

Parameters
[in]autthe automaton
Returns
whether the automaton is realtime

Definition at line 249 of file letterize.hh.

References vcsn::dyn::detail::is_letterized(), and is_proper().

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 ( const Aut &  aut)

Check whether the transducer is synchronized.

Parameters
[in]autthe transducer
Returns
whether it is synchronized

Definition at line 307 of file is-synchronized.hh.

template<typename Aut >
bool vcsn::is_synchronized_by ( const Aut &  aut,
const word_t_of< Aut > &  w 
)

Whether w synchronizes automaton aut.

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

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

Referenced by vcsn::dyn::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)

Whether this automaton is synchronizing, i.e., has synchronizing words.

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

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

Referenced by vcsn::detail_info::is_synchronizing(), vcsn::dyn::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)

Whether all its states are useful.

Definition at line 161 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)

Whether all no state is useful.

Definition at line 168 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 141 of file is-valid.hh.

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

Referenced by info(), vcsn::dyn::detail::is_valid_expression(), vcsn::detail::properer< Aut >::proper_star(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

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

Whether e has only computable stars.

Definition at line 17 of file is-valid-expression.hh.

References constant_term().

Here is the call graph for this function:

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

The join of two valuesets.

Definition at line 53 of file join.hh.

References vcsn::detail::join_().

Here is the call graph for this function:

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

The join of three (or more) valuesets.

We once had a single case for two-and-more arguments (instead of one join for two and one join for three-and-more), but the decltype() used in the return type failed to find the appropriate 'recursive' call to join in the case of three rat::identities. It turns out that removing the return type (and leaving its computation to the C++14 compiler) suffices to force the instantiation of the function, and to fix the problem.

Definition at line 71 of file join.hh.

References join().

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

Here is the call graph for this function:

template<typename WeightSet , typename ExpSet >
expressionset<context<labelset_t_of<ExpSet>, join_t<WeightSet, weightset_t_of<ExpSet> > > > vcsn::join_weightset_expressionset ( const WeightSet ws,
const ExpSet &  rs 
)

Join between an expressionset and a weightset.

We must not perform a plain

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

here. Consider for instance

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

we would perform

join(expressionset<law(xyz), b>, expressionset<lal(abc), expressionset<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 "expressionset<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 161 of file left-mult.hh.

References vcsn::rat::ctx(), join(), make_context(), and make_expressionset().

Referenced by vcsn::dyn::detail::left_mult_expression(), and vcsn::dyn::detail::right_mult_expression().

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())
template<typename LabelSet >
bool vcsn::label_is_zero ( const LabelSet &  ,
  ... 
)

Definition at line 51 of file polynomialset.hh.

template<typename Label , typename Weight >
auto vcsn::label_of ( const welement< Label, Weight > &  m) -> decltype(m.label())

Definition at line 125 of file wet.hh.

Referenced by vcsn::detail::trie_builder< Context, Dir >::add(), vcsn::edit_automaton< Aut >::add_entry(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::rat::split_visitor< ExpSet >::conjunction(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), derivation(), vcsn::detail::polynomialset_impl< Context, Kind >::hash(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltration(), vcsn::detail::derived_termer< ExpSet >::init_(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::monomial_equal(), vcsn::detail::polynomialset_impl< Context, Kind >::monomial_less(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl(), vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), vcsn::rat::split_visitor< ExpSet >::product(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), split_polynomial(), vcsn::detail::polynomialset_impl< Context, Kind >::sub_here(), vcsn::detail::polynomialset_impl< Context, Kind >::to_label(), vcsn::detail::polynomialset_impl< Context, Kind >::transpose(), vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::derivation_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::to_expansion_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::detail::derived_termer< ExpSet >::via_derivation(), vcsn::detail::derived_termer< ExpSet >::via_expansion(), vcsn::detail::wet_bitset::wet_bitset(), and vcsn::detail::wet_set< Key, Compare >::wet_set().

template<typename Label , typename Weight >
const Label& vcsn::label_of ( const std::pair< Label, Weight > &  m)

Definition at line 145 of file wet.hh.

template<typename Label , typename Weight >
Label& vcsn::label_of ( std::pair< Label, Weight > &  m)

Definition at line 157 of file wet.hh.

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

Definition at line 16 of file ladybird.hh.

References make_mutable_automaton(), vcsn::detail::make_vector(), and require().

Referenced by vcsn::dyn::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 ValueSet >
ValueSet::value_t vcsn::ldiv ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline

Left-division of values.

Definition at line 17 of file divide.hh.

Referenced by info(), and vcsn::detail::tupleset_impl< ValueSets >::ldiv_().

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

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

References left_mult_here().

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

Here is the call graph for this function:

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

Definition at line 131 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 81 of file left-mult.hh.

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

Referenced by left_mult(), and vcsn::dyn::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 598 of file reduce.hh.

Referenced by reduce().

template<typename ExpSet >
bool vcsn::less_than ( const ExpSet &  rs,
const typename ExpSet::value_t &  lhs,
const typename ExpSet::value_t &  rhs 
)

Whether lhs precedes rhs.

Definition at line 17 of file less-than.hh.

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

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

Split the word transitions in the input automaton into letter ones.

Parameters
[in]autthe automaton
Returns
the letterized automaton

Definition at line 135 of file letterize.hh.

References vcsn::detail::letterize().

Referenced by vcsn::dyn::letterize(), and realtime().

Here is the call graph for this function:

template<typename Context >
mutable_automaton<Context> vcsn::levenshtein ( const Context &  ctx)

Definition at line 16 of file levenshtein.hh.

References make_mutable_automaton(), vcsn::detail::make_vector(), and vcsn::rat::size().

Referenced by vcsn::dyn::levenshtein().

Here is the call graph for this function:

template<typename ValueSet >
ValueSet::value_t vcsn::lgcd ( const ValueSet &  vs,
const typename ValueSet::value_t &  lhs,
const typename ValueSet::value_t &  rhs 
)
inline
template<typename Aut , size_t... Tapes>
detail::lifted_automaton_t<Aut, Tapes...> vcsn::lift ( const Aut &  a,
vcsn::rat::identities  ids = {} 
)
inline

Lift some tapes of the transducer.

Parameters
athe input automaton
idsthe identities to use for the generated expressions

Definition at line 215 of file lift.hh.

Referenced by vcsn::dyn::detail::lift_expression(), and to_expression_heuristic().

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

Move all the labels to the weights.

Definition at line 294 of file lift.hh.

References vcsn::detail::lift_expressionset().

Here is the call graph for this function:

template<typename Automaton >
detail::weighter<Automaton>::polynomial_t vcsn::lightest ( const Automaton &  aut,
boost::optional< unsigned >  num = {} 
)
inline

The approximated behavior of an automaton.

Parameters
autthe automaton whose behavior to approximate
numnumber of words looked for.

Definition at line 167 of file lightest.hh.

Referenced by weigh().

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

Definition at line 188 of file print.hh.

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

template<typename Cont , typename Pred >
container_filter_range<Cont, Pred> vcsn::make_container_filter_range ( const Cont &  cont,
Pred  pred 
)

Definition at line 112 of file crange.hh.

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

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

References is, and str_escape().

Referenced by has_twins_property(), join_weightset_expressionset(), 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 131 of file context.hh.

template<typename AutIn , typename AutOut >
detail::copier<AutIn, AutOut> vcsn::make_copier ( const AutIn &  in,
AutOut &  out 
)
template<typename Aut >
auto vcsn::make_delay_automaton ( const Aut &  aut) -> decltype(detail::make_delay_automaton(aut))

Check whether the transducer is synchronized.

Parameters
[in]autthe transducer
Returns
whether it is synchronized

Definition at line 335 of file is-synchronized.hh.

template<typename Context >
expressionset<Context> vcsn::make_expressionset ( const Context &  ctx,
rat::identities  identities = {} 
)
template<typename AutIn , typename AutOut = fresh_automaton_t_of<AutIn>>
AutOut vcsn::make_fresh_automaton ( const AutIn &  model)
inline

Create an empty, mutable, automaton, based on another one.

To this end, each automaton type provides a fresh_automaton_t. In the case of mutable_automaton, it's simply mutable_automaton. In the case of a transpose_automaton<Aut>, it's transpose_automaton (of the fresh_automaton of Aut) so that we also create a transposed automaton. In the case of decorator, it's the base type, as we don't copy decorations.

Definition at line 239 of file copy.hh.

References vcsn::detail::real_context().

Referenced by aut_of_component(), conjunction(), multiply(), vcsn::detail::quotienter< Aut >::operator()(), vcsn::detail::universaler< Aut >::work_(), and vcsn::detail::standard_operations< Aut >::zero_here().

Here is the call graph for this function:

template<typename Context >
mutable_automaton<Context> vcsn::make_mutable_automaton ( const Context &  ctx)

Definition at line 1022 of file mutable-automaton.hh.

References vcsn::rat::ctx().

Referenced by vcsn::dyn::detail::copy_convert(), has_twins_property(), vcsn::detail::join_automata(), ladybird(), vcsn::dyn::left_mult(), levenshtein(), vcsn::detail::meet_automata(), project(), and vcsn::dyn::right_mult().

Here is the call graph for this function:

template<typename T >
std::pair<T, T> vcsn::make_ordered_pair ( e1,
e2 
)

Definition at line 34 of file pair.hh.

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

template<typename Aut >
auto vcsn::make_partition_automaton ( const fresh_automaton_t_of< Aut > &  res,
const Aut &  input,
const typename detail::partition_automaton_impl< Aut >::origins_t  origins 
) -> partition_automaton_t<Aut>

Build a partition_automaton.

Parameters
resthe actual result, typically a mutable_automaton
inputthe automaton from which the partition is computed
originsmap each state of res to its states in input

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

Referenced by vcsn::detail::quotienter< Aut >::operator()().

template<typename Aut >
auto vcsn::make_partition_automaton ( const fresh_automaton_t_of< Aut > &  res,
const partition_automaton< Aut > &  input,
const typename detail::partition_automaton_impl< Aut >::origins_t  origins 
) -> partition_automaton_t<Aut>

Build a partition_automaton of a partition_automaton: smash into a single level partition_automaton.

Parameters
resthe actual result, typically a mutable_automaton
inputthe automaton from which the partition is computed
originsmap each state of res to its states in input

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

template<typename Aut >
auto vcsn::make_partition_automaton ( const fresh_automaton_t_of< transpose_automaton< Aut >> &  res,
const transpose_automaton< Aut > &  input,
const typename detail::partition_automaton_impl< Aut >::origins_t  origins 
) -> transpose_automaton<partition_automaton_t<Aut>>

Build a partition_automaton of a transpose_automaton: smash into a transpose_automaton of a partition_automaton.

Parameters
resthe actual result, typically a mutable_automaton
inputthe automaton from which the partition is computed
originsmap each state of res to its states in input

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

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

Definition at line 537 of file conjunction.hh.

Referenced by conjunction(), conjunction_lazy(), infiltration(), and shuffle().

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

Definition at line 64 of file random.hh.

Referenced by random_label().

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 14 of file memory.hh.

References vcsn::dyn::type().

Here is the call graph for this function:

template<typename... Auts>
auto vcsn::make_tuple_automaton ( const Auts &...  auts) -> tuple_automaton<Auts...>
inline
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 154 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 163 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 206 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 237 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 335 of file letterset.hh.

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

Compute the meet with another alphabet.

Definition at line 363 of file wordset.hh.

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

The meet of two expressionsets.

Definition at line 552 of file expressionset.hh.

References vcsn::rat::meet().

Referenced by meet(), and vcsn::detail::meet_automata().

Here is the call graph for this function:

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 620 of file nullableset.hh.

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

Definition at line 623 of file nullableset.hh.

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

Definition at line 626 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 630 of file nullableset.hh.

template<typename Aut >
vcsn::enable_if_t<std::is_same<weightset_t_of<Aut>, b>::value && labelset_t_of<Aut>::is_free(), quotient_t<Aut> > vcsn::minimize ( const Aut &  a,
const std::string &  algo = "auto" 
)
inline

Definition at line 30 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 >
vcsn::enable_if_t<std::is_same<weightset_t_of<Aut>, b>::value && ! labelset_t_of<Aut>::is_free(), quotient_t<Aut> > vcsn::minimize ( const Aut &  a,
const std::string &  algo = "auto" 
)
inline

Definition at line 48 of file minimize.hh.

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

Here is the call graph for this function:

template<typename Aut >
vcsn::enable_if_t<!std::is_same<weightset_t_of<Aut>, b>::value, quotient_t<Aut> > vcsn::minimize ( const Aut &  a,
const std::string &  algo = "auto" 
)
inline

Definition at line 63 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 17 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) -> quotient_t<Aut>
inline

Minimize automaton a using the Moore algorithm.

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

References minimize(), and quotient().

Referenced by minimize().

Here is the call graph for this function:

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

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

References minimize(), and quotient().

Referenced by minimize().

Here is the call graph for this function:

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

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

References minimize(), and quotient().

Referenced by minimize().

Here is the call graph for this function:

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

Concatenate two standard automata.

Definition at line 86 of file multiply.hh.

References copy_into(), is_standard(), vcsn::detail::join_automata(), multiply_here(), and require().

Referenced by multiply(), vcsn::dyn::multiply(), vcsn::dyn::detail::multiply_expression(), vcsn::dyn::detail::multiply_repeated(), vcsn::dyn::detail::multiply_weight(), and vcsn::ctx::detail::register_functions().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::multiply ( const Aut &  aut,
int  min,
int  max 
) -> typename Aut::element_type::template fresh_automaton_t<>

Repeated concatenation of an automaton.

The return type, via SFINAE, makes the difference with another overload, <ValueSet>(ValueSet, value, value), which coincides in the case ValueSet = Z, hence value = int.

Unfortunately, fresh_automaton_t_of, which uses context_t_of<Aut>, is not SFINAE transparent: it causes a hard failure instead of being ignored.

FIXME: if you know how to use fresh_automaton_t_of instead, let me know.

Definition at line 131 of file multiply.hh.

References copy(), make_fresh_automaton(), multiply(), star(), and sum().

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 (concatenation) of expressions/labels/polynomials/weights.

Definition at line 201 of file multiply.hh.

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

Definition at line 254 of file multiply.hh.

References require(), and sum().

Referenced by vcsn::dyn::detail::multiply_expression_repeated(), and vcsn::dyn::detail::multiply_weight_repeated().

Here is the call graph for this function:

template<typename A , typename B >
A& vcsn::multiply_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 multiply.hh.

References copy(), is_standard(), make_copier(), vcsn::detail::make_vector(), and require().

Referenced by multiply().

Here is the call graph for this function:

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

Normalize a automaton.

Definition at line 20 of file normalize.hh.

References costandard(), and standard().

Referenced by vcsn::dyn::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 90 of file accessible.hh.

References accessible_states(), has(), and set.

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 105 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<typename Aut >
size_t vcsn::num_codeterministic_states ( const Aut &  aut)
inline

Number of non-deterministic states of transpositive automaton.

Definition at line 47 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<typename Aut >
std::size_t vcsn::num_components ( const scc_automaton< Aut > &  aut)
inline

Get number of strongly connected components.

Definition at line 660 of file scc.hh.

Referenced by info().

template<typename Aut >
std::size_t vcsn::num_components ( const Aut &  )
inline

Definition at line 667 of file scc.hh.

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

Number of non-deterministic states.

Definition at line 33 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 Ctx >
constexpr auto vcsn::num_tapes ( const Ctx &  ) -> enable_if_t<Ctx::is_lat, size_t>

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

References vcsn::rat::size().

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

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 113 of file accessible.hh.

References has(), set, 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 80 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 95 of file stream.cc.

std::string vcsn::operator+ ( symbol  l,
const char r 
)
inline

Definition at line 26 of file symbol.hh.

std::string vcsn::operator+ ( const char l,
symbol  r 
)
inline

Definition at line 32 of file symbol.hh.

std::string vcsn::operator+ ( symbol  l,
const std::string &  r 
)
inline

Definition at line 38 of file symbol.hh.

std::string vcsn::operator+ ( const std::string &  l,
symbol  r 
)
inline

Definition at line 44 of file symbol.hh.

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

Definition at line 14 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 &  os,
format  i 
)

Output in string form.

Definition at line 40 of file format.cc.

References to_string().

Here is the call graph for this function:

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 21 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:

std::istream & vcsn::operator>> ( std::istream &  is,
format i 
)

Read from string form.

Definition at line 45 of file format.cc.

References is.

template<typename Aut >
fresh_automaton_t_of<Aut, partial_identity_context_t_of<Aut> > vcsn::partial_identity ( const Aut &  aut)

Create a partial identity transducer from aut.

Definition at line 38 of file partial-identity.hh.

References vcsn::detail::back().

Referenced by vcsn::dyn::partial_identity().

Here is the call graph for this function:

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 233 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,
const std::vector< state_t_of< Aut >> &  start 
)

Find the shortest paths from some states to all the states.

Parameters
autthe automaton to traverse.
startthe states from which we reach the order states.
Returns
a map that, for each state, gives a pair: the shortest distance to its parent, and the transition id that allows to reach it.

Definition at line 190 of file distance.hh.

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

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

Definition at line 69 of file prefix.hh.

References copy(), and prefix_here().

Referenced by vcsn::ast::context_parser::automaton_(), vcsn::detail::synchronizer< Aut >::get_prefix(), and vcsn::dyn::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 60 of file prefix.hh.

References suffix_here(), and transpose().

Referenced by factor_here(), and prefix().

Here is the call graph for this function:

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.

Definition at line 65 of file set.hxx.

template<typename Aut >
std::ostream& vcsn::print ( const Aut &  aut,
std::ostream &  out,
const std::string &  format 
)
template<typename ValueSet >
std::ostream& vcsn::print ( const ValueSet &  vs,
const typename ValueSet::value_t &  v,
std::ostream &  o,
format  fmt 
)
inline

Applies to (ValueSet, Value, ostream, string): for expansionset, polynomialset, expressionset, and weightset.

Definition at line 141 of file print.hh.

template<std::size_t Tape, typename Aut >
auto vcsn::project ( const Aut &  aut) -> mutable_automaton<detail::project_context<Tape, context_t_of<Aut>>>

Definition at line 18 of file project-automaton.hh.

References copy_into(), and make_mutable_automaton().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::proper ( const Aut &  aut,
direction  dir = direction::backward,
bool  prune = true,
const std::string &  algo = "auto" 
) -> fresh_automaton_t_of<Aut, detail::proper_context<context_t_of<Aut>>>

Eliminate spontaneous transitions.

Raise if the input automaton is invalid.

Parameters
autthe input automaton
dirwhether backward or forward elimination
prunewhether to suppress states becoming inaccessible
algohow elimination is performed "auto" same as "inplace" "default" same as "inplace" "inplace" eliminate in place "separate" first separate the automaton into spontaneous and proper parts "distance" compute all-pairs distances

Definition at line 165 of file proper.hh.

References backward, BUILTIN_UNREACHABLE, forward, vcsn::detail::make_properer(), and transpose().

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

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 44 of file push-weights.hh.

References copy(), and shortest_distance_to_finals().

Referenced by vcsn::dyn::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 &  cs 
) -> quotient_t<Aut>
inline

Definition at line 124 of file quotient.hh.

Referenced by minimize_moore(), minimize_signature(), and minimize_weighted().

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 62 of file raise.hh.

References vcsn::detail::print_(), and vcsn::detail::void.

Here is the call graph for this function:

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

Definition at line 99 of file random.hh.

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

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

Here is the call graph for this function:

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

Definition at line 259 of file random.hh.

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

Referenced by vcsn::dyn::random_automaton_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 19 of file random.hh.

References vcsn::oneset::one().

Referenced by random_automaton(), 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 28 of file random.hh.

References 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 38 of file random.hh.

References random_label().

Here is the call graph for this function:

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

Definition at line 48 of file random.hh.

References vcsn::detail::genset_labelset< GenSet >::genset(), make_random_selector(), vcsn::detail::genset_labelset< GenSet >::mul(), vcsn::wordset< GenSet >::one(), and vcsn::wordset< GenSet >::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 62 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 73 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>
expressionset<Context>::value_t vcsn::random_label ( const expressionset< Context > &  rs,
RandomGenerator &  gen = RandomGenerator() 
)

Definition at line 87 of file random.hh.

References random_label().

Here is the call graph for this function:

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

Right-division of values.

Definition at line 100 of file divide.hh.

Referenced by vcsn::detail::tupleset_impl< ValueSets >::rdiv_().

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

Definition at line 20 of file read.hh.

References vcsn::rat::ctx(), and is.

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

Here is the call graph for this function:

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

Definition at line 51 of file read.hh.

References conv(), vcsn::rat::ctx(), 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 82 of file read.hh.

References vcsn::rat::ctx(), and is.

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

Here is the call graph for this function:

template<typename Aut >
auto vcsn::realtime ( const Aut &  aut) -> decltype(proper(::vcsn::letterize(aut)))

Split the word transitions in the input automaton into letter ones, and remove the spontaneous transitions.

Parameters
[in]autthe automaton
Returns
the realtime automaton

Definition at line 220 of file letterize.hh.

References letterize(), and proper().

Referenced by are_equivalent(), and vcsn::dyn::realtime().

Here is the call graph for this function:

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

Definition at line 608 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 75 of file raise.hh.

Referenced by vcsn::edit_automaton< Aut >::add_entry(), vcsn::set_alphabet< L >::add_letter(), ambiguous_word(), cerny(), complement_here(), conv(), vcsn::detail::min_plus_impl< unsigned int >::conv(), vcsn::detail::f2_impl::conv(), vcsn::oneset::conv(), vcsn::detail::b_impl::conv(), vcsn::letterset< GenSet >::conv(), vcsn::wordset< GenSet >::conv(), vcsn::detail::q_impl::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_label(), vcsn::detail::polynomialset_impl< Context, Kind >::conv_monomial(), vcsn::detail::genset_labelset< GenSet >::convs_classes_(), de_bruijn(), derivation(), derived_term(), vcsn::detail::word_synchronizer< Aut >::dest_state(), divkbaseb(), double_ring(), eat(), eliminate_state(), vcsn::rat::expressionset_impl< Context >::expressionset_impl(), vcsn::detail::gcd(), vcsn::ast::context_parser::genset_(), vcsn::dyn::detail::Registry< Fun >::get(), get_char(), get_file_contents(), vcsn::are_isomorphicer< Aut1, Aut2 >::get_full_response(), vcsn::detail::genset_labelset< GenSet >::get_letter(), vcsn::detail::pair_automaton_impl< Aut >::get_origin(), vcsn::set_alphabet< L >::get_word(), has_twins_property(), vcsn::detail::product_automaton_impl< Aut, Auts >::infiltration(), vcsn::detail::word_synchronizer< Aut >::init_synchro(), is_synchronized_by(), ladybird(), vcsn::rat::expressionset_impl< Context >::letter_class_(), vcsn::detail::z_impl::lgcd(), vcsn::detail::r_impl::lgcd(), vcsn::detail::b_impl::lgcd(), vcsn::detail::q_impl::lgcd(), vcsn::rat::driver::make_label(), vcsn::rat::driver::make_weight(), vcsn::detail_moore::minimizer< Aut >::minimizer(), vcsn::detail_weighted::minimizer< Aut >::minimizer(), vcsn::detail_signature::minimizer< Aut >::minimizer(), multiply(), multiply_here(), vcsn::detail::state_eliminator< Aut, Profiler >::operator()(), vcsn::are_isomorphicer< Aut1, Aut2 >::origins(), vcsn::detail::dot::driver::parse(), vcsn::detail::dot::parser::parse(), vcsn::detail::properer< Aut >::proper_star(), random_automaton(), random_automaton_deterministic(), vcsn::detail::min_plus_impl< unsigned int >::rdiv(), vcsn::detail::log_impl::rdiv(), vcsn::detail::f2_impl::rdiv(), vcsn::detail::qmp_impl::rdiv(), vcsn::detail::z_impl::rdiv(), vcsn::detail::b_impl::rdiv(), vcsn::detail::r_impl::rdiv(), vcsn::detail::q_impl::rdiv(), vcsn::dyn::read_efsm(), vcsn::detail::f2_impl::star(), star_here(), sum_here(), u(), and zpc().

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::vector<state_t_of<Aut> > vcsn::reverse_postorder ( const Aut &  aut)
inline

Get all states in reverse postorder.

Definition at line 96 of file scc.hh.

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

Here is the call graph for this function:

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

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

References copy(), and right_mult_here().

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

Here is the call graph for this function:

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

Definition at line 240 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 196 of file left-mult.hh.

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

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

Here is the call graph for this function:

template<typename Container >
bool vcsn::same_domain ( const Container &  x,
const Container &  y 
)

Check that two associative containers have the same keys.

Definition at line 165 of file algorithm.hh.

template<typename Aut >
scc_automaton<Aut> vcsn::scc ( const Aut &  aut,
const std::string &  algo = "auto" 
)
inline

Get scc_automaton from aut.

Definition at line 633 of file scc.hh.

Referenced by vcsn::detail::scc_dijkstra_impl< Aut >::dfs(), and info().

scc_algo_t vcsn::scc_algo ( const std::string &  algo)
inline

Definition at line 471 of file scc.hh.

References dijkstra, kosaraju, str_escape(), tarjan_iterative, and tarjan_recursive.

Here is the call graph for this function:

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

The set of members of set1 that are not members of set2.

Definition at line 35 of file set.hh.

Referenced by vcsn::detail::genset_labelset< GenSet >::convs_classes_().

template<typename Automaton >
detail::enumerater<Automaton>::polynomial_t vcsn::shortest ( const Automaton &  aut,
boost::optional< unsigned >  num = {},
boost::optional< unsigned >  len = {} 
)
inline

The approximated behavior of an automaton.

Parameters
autthe automaton whose behavior to approximate
numnumber of words looked for.
lenmaximum length of words looked for.

Definition at line 246 of file shortest.hh.

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

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 18 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 distances of each state to the final states of aut.

Definition at line 28 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) -> tuple_automaton<decltype(join_automata(as...)), Auts...>
inline

The (accessible part of the) shuffle product.

Definition at line 634 of file conjunction.hh.

References vcsn::detail::join_automata(), and make_product_automaton().

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

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 expressions.

Definition at line 678 of file conjunction.hh.

template<typename T >
symbol vcsn::sname ( )

Definition at line 67 of file name.hh.

References vcsn::snamer< T >::name().

Referenced by vcsn::detail::label_one(), vcsn::dyn::make_context(), vcsn::set_alphabet< L >::sname(), vcsn::detail::genset_labelset< GenSet >::sname(), vcsn::detail::permutation_automaton_impl< Aut >::sname(), vcsn::detail::name_automaton_impl< Aut >::sname(), vcsn::detail::filter_automaton_impl< Aut >::sname(), vcsn::detail::expression_automaton_impl< Aut >::sname(), vcsn::rat::expansionset< expressionset_t >::sname(), vcsn::detail::transpose_automaton_impl< Aut >::sname(), vcsn::detail::partition_automaton_impl< Aut >::sname(), vcsn::detail::delay_automaton_impl< Aut >::sname(), vcsn::context< Tape, full_context_t >::sname(), vcsn::detail::determinized_automaton_impl< Aut >::sname(), vcsn::rat::expressionset_impl< Context >::sname(), vcsn::detail::synchronized_automaton_impl< Aut >::sname(), vcsn::detail::polynomialset_impl< Context, Kind >::sname(), vcsn::detail::mutable_automaton_impl< Context >::sname(), vcsn::detail::focus_automaton_impl< Tape, Aut >::sname(), vcsn::detail::pair_automaton_impl< Aut >::sname(), vcsn::nullableset< LabelSet >::sname(), vcsn::detail::detweighted_automaton_impl< Aut >::sname(), vcsn::detail::scc_automaton_impl< Aut >::sname(), vcsn::detail::tuple_automaton_impl< Aut, Auts >::sname_(), and vcsn::detail::tupleset_impl< ValueSets >::sname_().

Here is the call graph for this function:

template<typename T >
symbol vcsn::sname ( T &  )

Definition at line 73 of file name.hh.

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

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

Split a polynomial of expressions, given the expressionset.

Definition at line 308 of file split.hh.

References vcsn::rat::make_expression_polynomialset(), and split_polynomial().

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 expressions, given the polynomialset.

Definition at line 292 of file split.hh.

References label_of(), vcsn::detail::rs, split(), and weight_of().

Referenced by split().

Here is the call graph for this function:

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

Single source shortest distance.

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

Definition at line 28 of file distance.hh.

References has(), and vcsn::weightset_mixin< WeightSet >::mul().

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 82 of file name.hh.

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

Definition at line 116 of file standard.hh.

References copy(), and standard_here().

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

Here is the call graph for this function:

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

Build a standard automaton from an expression.

Template Parameters
Autrelative to the generated automaton.
ExpSetrelative to the expression.

Definition at line 380 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 81 of file standard.hh.

References is_standard().

Referenced by standard().

Here is the call graph for this function:

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

Star of a standard automaton.

Definition at line 60 of file star.hh.

References copy(), and star_here().

Referenced by info(), multiply(), vcsn::dyn::star(), and vcsn::detail::tupleset_impl< ValueSets >::star_().

Here is the call graph for this function:

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

Star height of an expression.

Definition at line 100 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 20 of file star.hh.

References is_standard(), and require().

Referenced by star().

Here is the call graph for this function:

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

Star-normal form of an expression.

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

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 262 of file string.hh.

References vcsn::string_letters::special_letter().

Here is the call graph for this function:

Definition at line 270 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 37 of file strip.hh.

References vcsn::detail::strip().

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

Here is the call graph for this function:

template<typename Aut >
const detail::components_t<Aut> vcsn::strong_components ( const Aut &  aut,
scc_algo_t  algo = scc_algo_t::tarjan_iterative 
)
inline
template<typename Container >
bool vcsn::subset ( const Container &  set1,
const Container &  set2 
)

Whether set1 ⊆ set2.

Definition at line 78 of file set.hxx.

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

template<typename Aut >
auto vcsn::subword ( const Aut &  aut) -> fresh_automaton_t_of<Aut, detail::nullableset_context_t<context_t_of<Aut>>>

Apply subword_here() to a copy of aut.

Definition at line 158 of file prefix.hh.

References copy_into(), vcsn::detail::make_nullableset_context(), and subword_here().

Referenced by vcsn::dyn::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 137 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::detail::synchronizer< Aut >::get_prefix(), and vcsn::dyn::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 factor_here(), 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 64 of file sum.hh.

References vcsn::detail::join_automata(), and sum_here().

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

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 100 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 27 of file sum.hh.

References is_standard(), and require().

Referenced by sum().

Here is the call graph for this function:

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

Synchronize the transducer.

Parameters
[in]autthe transducer
Returns
the synchronized transducer

Definition at line 352 of file synchronize.hh.

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

Referenced by vcsn::dyn::synchronize().

Here is the call graph for this function:

template<typename Aut >
word_t_of<Aut> vcsn::synchronizing_word ( const Aut &  aut,
const std::string &  algo = "greedy" 
)

Return a synchronizing word for aut using algo algo.

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

References vcsn::detail::word_synchronizer< Aut >::cycle(), vcsn::detail::word_synchronizer< Aut >::fastsynchro(), vcsn::detail::word_synchronizer< Aut >::greedy(), str_escape(), vcsn::detail::word_synchronizer< Aut >::synchroP(), and vcsn::detail::word_synchronizer< Aut >::synchroPL().

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

Here is the call graph for this function:

template<typename Aut , typename ExpSet >
Aut vcsn::thompson ( const context_t_of< Aut > &  ctx,
const ExpSet &  rs,
const typename ExpSet::value_t &  r 
)
inline

Build a Thompson automaton from an expression.

Template Parameters
Autrelative to the generated automaton.
ExpSetrelative to the expression.

Definition at line 176 of file thompson.hh.

References vcsn::rat::ctx().

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

Here is the call graph for this function:

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

Build a Thompson automaton from an expression.

Template Parameters
Autrelative to the generated automaton.
ExpSetrelative to the expression.

Definition at line 190 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 151 of file tikz.hh.

Referenced by print().

template<typename ExpSet >
rat::expansionset< ExpSet >::value_t vcsn::to_expansion ( const ExpSet &  rs,
const typename ExpSet::value_t &  e 
)
template<typename Aut , typename Profiler , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t vcsn::to_expression ( Aut &  a,
Profiler &  profiler 
)

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

References vcsn::detail::make_state_eliminator().

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

Here is the call graph for this function:

template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t vcsn::to_expression ( const Aut &  aut,
vcsn::rat::identities  ids,
to_expression_heuristic_t  algo 
)

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

References best, delgado, delgado_label, vcsn::rat::ids(), and naive.

Here is the call graph for this function:

template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t vcsn::to_expression ( const Aut &  a,
vcsn::rat::identities  ids,
const std::string &  algo 
)

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

References best, delgado, delgado_label, getargs(), vcsn::rat::ids(), and naive.

Here is the call graph for this function:

template<typename ExpressionSet >
ExpressionSet::value_t vcsn::to_expression ( const ExpressionSet &  rs,
const letter_class_t letters,
bool  accept = true 
)

An expression matching one letter in a letter class.

Parameters
rsThe expressionset to use.
lettersThe letter class as a set of ranges.
acceptWhether to accept these characters ([abc]) as opposed to refusing them ([^abc]).

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

References vcsn::detail::letter_class_impl().

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

Here is the call graph for this function:

template<typename Aut , typename ExpSet = expressionset<context_t_of<Aut>>>
ExpSet::value_t vcsn::to_expression_heuristic ( const Aut &  aut,
vcsn::rat::identities  ids,
to_expression_heuristic_t  algo 
)

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

References best, BUILTIN_UNREACHABLE, delgado, delgado_label, lift(), and naive.

Here is the call graph for this function:

std::string vcsn::to_string ( format  i)

Wrapper around operator<<.

Definition at line 26 of file format.cc.

References BUILTIN_UNREACHABLE, vcsn::format::kind(), vcsn::format::latex, vcsn::format::raw, and vcsn::format::text.

Here is the call graph for this function:

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

Format v via vs.print.

Definition at line 120 of file stream.hh.

References v.

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

A expression that denotes the transposition of v.

Works deeply, contrary to transposition() that merely applies the {T} operator.

Definition at line 177 of file transpose.hh.

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

Definition at line 243 of file transpose.hh.

template<typename PolynomialSet >
mutable_automaton<detail::free_context<context_t_of<PolynomialSet> > > vcsn::trie ( const PolynomialSet &  ps,
const typename PolynomialSet::value_t &  p 
)

Make a trie-like mutable_automaton for a finite series given as a polynomial.

Parameters
psthe polynomialset
pthe polynomial that specifies the series.

Definition at line 154 of file trie.hh.

template<typename PolynomialSet >
mutable_automaton<detail::free_context<context_t_of<PolynomialSet> > > vcsn::trie ( const PolynomialSet &  ps,
std::istream &  is 
)

Make a trie-like mutable_automaton for a finite series read from a stream.

Parameters
psthe polynomialset
isthe stream to read

Definition at line 210 of file trie.hh.

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

Useful part of an automaton.

Definition at line 150 of file accessible.hh.

References filter(), and useful_states().

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

Here is the call graph for this function:

template<typename ValueSet , typename... ValueSets>
ValueSet::value_t vcsn::tuple ( const ValueSet &  vs,
const typename ValueSets::value_t &...  v 
)
inline

Definition at line 28 of file tuple.hh.

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

template<typename... Ctx>
auto vcsn::tuple_context ( Ctx &&...  ctx) -> context<tupleset<labelset_t_of<Ctx>...>, join_t<weightset_t_of<Ctx>...>>

Definition at line 11 of file tuple.hh.

References vcsn::rat::ctx(), join(), and vcsn::detail::make_tupleset().

Referenced by tuple_expressionset().

Here is the call graph for this function:

template<typename... ExpSets>
auto vcsn::tuple_expressionset ( const ExpSets &...  rss) -> expressionset<decltype(tuple_context(rss.context()...))>

Definition at line 40 of file tuple.hh.

References vcsn::rat::ctx(), vcsn::rat::ids(), join(), and tuple_context().

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

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 vcsn::rat::ctx(), and require().

Referenced by vcsn::ctx::detail::register_functions_is_free(), vcsn::ctx::detail::register_kind_functions(), and vcsn::dyn::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 32 of file union.hh.

References vcsn::detail::join_automata(), and union_here().

Referenced by vcsn::ctx::detail::register_functions(), and vcsn::dyn::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 22 of file union.hh.

References copy_into().

Referenced by union_a().

Here is the call graph for this function:

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

Definition at line 124 of file universal.hh.

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

template<typename Aut >
states_t<Aut> vcsn::useful_states ( const Aut &  a,
bool  strict = true 
)

The set of useful states, including possibly pre() and post().

Parameters
athe automaton.
strictwhether to evaluate lazy states.

Definition at line 75 of file accessible.hh.

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

Referenced by 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 >
symbol vcsn::vname ( T &  t)

Definition at line 101 of file name.hh.

References vcsn::vnamer< T >::name().

Referenced by vcsn::dyn::lift(), vcsn::vnamer< const std::vector< dyn::expression > >::name(), vcsn::vnamer< const std::vector< dyn::automaton > >::name(), and vsignature().

Here is the call graph for this function:

template<typename... Args>
signature vcsn::vsignature ( Args &&...  args)
inline

The signature of (Args...).

Definition at line 287 of file name.hh.

References vname().

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

Here is the call graph for this function:

template<typename Automaton >
detail::weighter<Automaton>::polynomial_t vcsn::weigh ( const Automaton &  aut)
inline

The approximated behavior of an automaton.

Parameters
autthe automaton whose behavior to approximate

Definition at line 180 of file lightest.hh.

References lightest().

Here is the call graph for this function:

template<typename Label , typename Weight >
auto vcsn::weight_of ( const welement< Label, Weight > &  m) -> decltype(m.weight())

Definition at line 132 of file wet.hh.

Referenced by vcsn::detail::trie_builder< Context, Dir >::add(), vcsn::edit_automaton< Aut >::add_entry(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::rat::split_visitor< ExpSet >::conjunction(), vcsn::detail::polynomialset_impl< Context, Kind >::conjunction(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), derivation(), vcsn::detail::polynomialset_impl< Context, Kind >::get_weight(), vcsn::detail::polynomialset_impl< Context, Kind >::hash(), vcsn::detail::polynomialset_impl< Context, Kind >::infiltration(), vcsn::detail::derived_termer< ExpSet >::init_(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::monomial_equal(), vcsn::detail::polynomialset_impl< Context, Kind >::monomial_less(), vcsn::detail::polynomialset_impl< Context, Kind >::mul(), vcsn::detail::polynomialset_impl< Context, Kind >::mul_impl(), vcsn::detail::polynomialset_impl< Context, Kind >::norm_< WeightSet, Dummy >::operator()(), vcsn::detail::polynomialset_impl< Context, Kind >::norm_< z, Dummy >::operator()(), vcsn::detail::polynomialset_impl< Context, Kind >::norm_< polynomialset< Ctx, Knd >, Dummy >::operator()(), vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), vcsn::rat::split_visitor< ExpSet >::product(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul(), vcsn::detail::polynomialset_impl< Context, Kind >::rmul_label(), vcsn::detail::polynomialset_impl< Context, Kind >::scalar_product(), split_polynomial(), vcsn::detail::polynomialset_impl< Context, Kind >::sub_here(), vcsn::detail::polynomialset_impl< Context, Kind >::to_label(), vcsn::detail::polynomialset_impl< Context, Kind >::transpose(), vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::derivation_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::to_expansion_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::detail::derived_termer< ExpSet >::via_derivation(), vcsn::detail::derived_termer< ExpSet >::via_expansion(), vcsn::detail::wet_bitset::wet_bitset(), and vcsn::detail::wet_set< Key, Compare >::wet_set().

template<typename Label , typename Weight >
const Weight& vcsn::weight_of ( const std::pair< Label, Weight > &  m)

Definition at line 151 of file wet.hh.

template<typename Aut >
auto vcsn::weight_series ( const Aut &  a) -> weight_t_of<Aut>
inline

Definition at line 13 of file weight-series.hh.

template<typename Label , typename Weight >
void vcsn::weight_set ( welement< Label, Weight > &  m,
const Weight &  w 
)

Definition at line 139 of file wet.hh.

References vcsn::detail::welement_weight< Weight >::weight().

Referenced by vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here(), and vcsn::detail::polynomialset_impl< Context, Kind >::sub_here().

Here is the call graph for this function:

template<typename Label , typename Weight >
void vcsn::weight_set ( std::pair< Label, Weight > &  m,
const Weight &  w 
)

Definition at line 163 of file wet.hh.

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

Definition at line 439 of file zip.hh.

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

Definition at line 446 of file zip.hh.

template<typename... Sequences>
zip_sequences_padded<zip_sequences<Sequences...> > vcsn::zip_with_padding ( const std::tuple< typename Sequences::value_type...> &  pad,
const Sequences &...  seq 
)

Definition at line 453 of file zip.hh.

template<typename Aut , typename ExpSet >
Aut vcsn::zpc ( const context_t_of< Aut > &  ctx,
const ExpSet &  rs,
const typename ExpSet::value_t &  r,
const std::string &  algo = "auto" 
)
inline

Build a ZPC automaton from an expression.

Template Parameters
Autrelative to the generated automaton.
ExpSetrelative to the expression.

Definition at line 335 of file zpc.hh.

References vcsn::rat::ctx(), require(), and vcsn::detail::rs.

Referenced by vcsn::dyn::to_automaton().

Here is the call graph for this function:

Variable Documentation

std::ostream vcsn::cnull {nullptr}

An narrow-char stream that discards the output.

Definition at line 13 of file stream.cc.

vcsn::v
Initial value:
{
std::hash<T> hasher
return hasher(v)

Definition at line 65 of file functional.hh.

Referenced by vcsn::detail::r_impl::abs(), vcsn::rat::variadic< Type, Context >::accept(), vcsn::rat::unary< Type, Context >::accept(), vcsn::rat::weight_node< Type, Context >::accept(), vcsn::rat::constant< Type, Context >::accept(), vcsn::rat::atom< Context >::accept(), vcsn::detail::polynomialset_impl< Context, Kind >::add_here(), vcsn::rat::expressionset_impl< Context >::tuple_of_label< Dummy >::as_label_(), vcsn::detail::dot::parser::basic_symbol< Base >::basic_symbol(), vcsn::rat::parser::basic_symbol< Base >::basic_symbol(), vcsn::detail::nmin_impl::conv(), vcsn::detail::rmin_impl::conv(), vcsn::detail::zmin_impl::conv(), vcsn::detail::log_impl::conv(), vcsn::detail::f2_impl::conv(), vcsn::detail::qmp_impl::conv(), vcsn::oneset::conv(), vcsn::detail::z_impl::conv(), vcsn::detail::b_impl::conv(), vcsn::detail::r_impl::conv(), vcsn::detail::q_impl::conv(), vcsn::letterset< GenSet >::conv(), vcsn::wordset< GenSet >::conv(), vcsn::nullableset< LabelSet >::conv(), vcsn::rat::expressionset_impl< Context >::conv(), vcsn::detail::tupleset_impl< ValueSets >::conv(), vcsn::detail::polynomialset_impl< Context, Kind >::conv(), vcsn::detail::tupleset_impl< ValueSets >::conv_(), vcsn::detail::polynomialset_impl< Context, Kind >::del_weight(), vcsn::rat::printer< ExpSet >::for(), vcsn::detail::nullable_helper< LabelSet >::get_value(), vcsn::detail::nullable_helper< letterset< GenSet > >::get_value(), vcsn::detail::polynomialset_impl< Context, Kind >::get_weight(), vcsn::rat::expressionset_impl< Context >::hash(), vcsn::detail::polynomialset_impl< Context, Kind >::hash(), vcsn::rat::info< ExpSet >::visit_tuple< bool, Dummy >::info_(), vcsn::rat::printer< ExpSet >::is_letter_(), vcsn::detail::f2_impl::is_one(), vcsn::detail::b_impl::is_one(), vcsn::rat::expressionset_impl< Context >::is_one(), vcsn::detail::polynomialset_impl< Context, Kind >::is_one(), vcsn::letterset< GenSet >::is_special(), vcsn::rat::printer< ExpSet >::is_word_(), vcsn::detail::f2_impl::is_zero(), vcsn::detail::b_impl::is_zero(), vcsn::rat::expressionset_impl< Context >::is_zero(), vcsn::detail::polynomialset_impl< Context, Kind >::ldiv_here(), vcsn::letterset< GenSet >::letters_of(), vcsn::wordset< GenSet >::letters_of(), vcsn::nullableset< LabelSet >::letters_of(), vcsn::letterset< GenSet >::letters_of_padded(), vcsn::wordset< GenSet >::letters_of_padded(), vcsn::nullableset< LabelSet >::letters_of_padded(), vcsn::detail::polynomialset_impl< Context, Kind >::lmul(), vcsn::detail::polynomialset_impl< Context, Kind >::new_weight(), vcsn::detail::none_of_equal(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), std::hash< vector< T, Alloc > >::operator()(), vcsn::rat::printer< ExpSet >::operator()(), vcsn::detail::left_reductioner< Aut >::operator()(), vcsn::rat::printer< ExpSet >::precedence_(), vcsn::rat::expressionset_impl< Context >::print(), vcsn::rat::printer< ExpSet >::visit_tuple< bool, Dummy >::print_(), vcsn::rat::printer< ExpSet >::print_(), vcsn::detail::polynomialset_impl< Context, Kind >::rdiv_here(), vcsn::detail::wet_map< Key, Value, Compare >::set(), vcsn::detail::wet_unordered_map< Key, Value, Hash, KeyEqual >::set(), vcsn::detail::wet_bitset::set(), vcsn::rat::expressionset_impl< Context >::size(), vcsn::rat::sizer< ExpSet >::visit_tuple< bool, Dummy >::size_(), vcsn::detail::tupleset_impl< ValueSets >::size_(), vcsn::detail::r_impl::star(), vcsn::detail::polynomialset_impl< Context, Kind >::sub_here(), to_string(), vcsn::detail::min_plus_impl< unsigned int >::transpose(), vcsn::detail::log_impl::transpose(), vcsn::detail::f2_impl::transpose(), vcsn::detail::qmp_impl::transpose(), vcsn::detail::z_impl::transpose(), vcsn::detail::b_impl::transpose(), vcsn::detail::r_impl::transpose(), vcsn::detail::q_impl::transpose(), vcsn::rat::expressionset_impl< Context >::transpose(), vcsn::detail::star_heighter< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::hash< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::sizer< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::detail::transposer< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::star_normal_form_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::constant_term_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::derivation_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::copier< InExpSet, OutExpSet >::VCSN_RAT_VISIT(), vcsn::rat::info< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::printer< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::split_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::to_expansion_visitor< ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::const_visitor< Context >::visit(), vcsn::rat::hash< ExpSet >::visit(), vcsn::rat::sizer< ExpSet >::visit(), vcsn::rat::less< ExpSet >::visit(), vcsn::rat::copier< InExpSet, OutExpSet >::visit(), vcsn::rat::printer< ExpSet >::visit(), vcsn::rat::constant_term_visitor< ExpSet >::visit(), vcsn::rat::info< ExpSet >::visit(), vcsn::rat::derivation_visitor< ExpSet >::visit(), vcsn::rat::to_expansion_visitor< ExpSet >::visit(), vcsn::wordset< GenSet >::word(), and vcsn::detail::tupleset_impl< ValueSets >::word().

std::wostream vcsn::wcnull {nullptr}

An wide-char stream that discards the output.

Definition at line 14 of file stream.cc.