Vcsn  2.2a
Be Rational
vcsn::detail Namespace Reference

Namespaces

 dot
 Implementation details of the dot parser.
 

Classes

struct  a_star_impl
 A Star implementation of lightest automaton. More...
 
struct  and_
 And condition on several typenames. More...
 
struct  and_< F1 >
 
struct  and_< F1, F... >
 
struct  and_<>
 
class  automaton_decorator
 Aggregate an automaton, and forward calls to it. More...
 
class  b_impl
 
class  backslashify_output_filter
 Backslash backslashes. More...
 
class  bounded_lag_checker
 
class  compose_automaton_impl
 Build the (accessible part of the) composition. More...
 
struct  composed_type
 Build the (accessible part of the) composition. More...
 
struct  concat
 
struct  concat< index_sequence< I1... >, index_sequence< I2... > >
 
struct  concat_index_sequence
 
struct  concat_index_sequence< index_sequence< I1... >, index_sequence< I2... > >
 
struct  concat_tupleset
 
struct  concat_tupleset< weightset_mixin< tupleset_impl< T1... > >, weightset_mixin< tupleset_impl< T2... > > >
 
struct  context_t_of_impl
 
struct  context_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::context_t > >
 
struct  context_t_of_impl< ValueSet, void_t< typename ValueSet::context_t > >
 
class  copier
 Copy an automaton. More...
 
class  cycle_identity_impl
 Whether all the paths between any two states have the same weight (i.e., for all s0, s1, any two paths p0, p1 between s0 and s1 have the same weight w_{s0,s1}). More...
 
class  delay_automaton_impl
 An automaton whose states may be qualified by delays and/or prefixes. More...
 
struct  delgado_profiler
 Compute a state profile for state-elimination based on the Delgado-Morais heuristic. More...
 
struct  derived_term_algo
 Specify a variety of derived-term construction. More...
 
class  derived_term_automaton_impl
 Compute the derived-term automaton from an expression. More...
 
struct  derived_term_automaton_members
 Additional members when the labelset is free. More...
 
struct  derived_term_automaton_members< ExpSet, false >
 Additional members when the labelset is not free. More...
 
struct  detect
 
struct  detect< T, Op, void_t< Op< T > > >
 
class  determinized_automaton_impl
 The subset construction automaton from another. More...
 
struct  dijkstra_impl
 Dijkstra implementation of lightest automaton. More...
 
class  dotter
 Format an automaton into Dot. More...
 
struct  down_caster
 A functor that captures the current location (to report errors), and provides "cast". More...
 
class  efsmer
 Format automaton to EFSM format, based on FSM format. More...
 
class  enumerater
 Compute the shortest words accepted by an automaton. More...
 
struct  epsilon_acyclic
 
struct  epsilon_acyclic< Aut, false >
 
struct  epsilon_acyclic< Aut, true >
 Detect epsilon-circuits. More...
 
struct  epsilon_profile
 This is used by some epsilon removal algorithms. More...
 
class  epsilon_remover
 This class contains the core of the proper algorithm. More...
 
class  epsilon_remover< Aut, false >
 
class  epsilon_remover_distance
 This class contains the core of the proper algorithm. More...
 
class  epsilon_remover_distance< Aut, false >
 
class  epsilon_remover_separate
 This class contains the core of the proper algorithm. More...
 
class  epsilon_remover_separate< Aut, false >
 
struct  eval_if
 
struct  eval_if_c
 Test if (c) then F1 else F2 and get the value. More...
 
class  evaluator
 
class  expression_automaton_impl
 An incremental automaton whose states are expressions. More...
 
class  f2_impl
 
class  fadoer
 Format an automaton into Fado. More...
 
class  filter_automaton_impl
 Hide some states of an automaton. More...
 
class  focus_automaton_impl
 Read-write on an automaton, that hides all tapes but one. More...
 
struct  full_context_t_of_impl
 
struct  full_context_t_of_impl< insplit_automaton< Aut > >
 
struct  genset_labelset
 This class has no modeling purpose, it only serves to factor code common to letterset and wordset. More...
 
class  grailer
 Format an automaton into Fado. More...
 
struct  hidden_label_type
 
struct  hidden_label_type< Aut, index_sequence< I... > >
 
struct  if_
 
struct  if_c
 
struct  if_c< false, T1, T2 >
 
struct  index_sequence
 
struct  index_sequence_difference
 Get the list containing all the elements of I1 (contiguous sequence from 0 to N) not present in I2 (arbitrary sequence, sorted). More...
 
struct  index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence< I1_1, I2... > >
 
struct  index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence< I2_1, I2... > >
 
struct  index_sequence_difference< index_sequence< I1_1, I1... >, index_sequence<> >
 
struct  index_sequence_difference< index_sequence<>, index_sequence<> >
 
struct  index_t_impl
 Lightweight state/transition handle (or index). More...
 
class  insplit_automaton_impl
 
class  insplit_automaton_impl< Aut, false >
 
struct  int_range
 
struct  int_range< off, index_sequence< I... > >
 
struct  is_division_ring
 
struct  is_division_ring< polynomialset< Context, Kind > >
 
struct  is_division_ring< z >
 
struct  is_multitape
 Whether a ValueSet, or a context, is multitape. More...
 
struct  is_multitape< context< LabelSet, WeightSet > >
 
struct  is_multitape< tupleset< ValueSet... > >
 
struct  is_special_t
 Needed for GCC 5 and 6 that refuse deduced return type for transitions() when using a lambda. More...
 
class  is_valider
 
class  is_valider< Aut, false >
 
struct  join_impl
 A structure that implements the computation of join(V1, V2). More...
 
struct  join_impl< b, expressionset< Context > >
 
struct  join_impl< context< LS1, WS1 >, context< LS2, WS2 > >
 The join of two contexts. More...
 
struct  join_impl< expansionset< expressionset< Ctx1 > >, expansionset< expressionset< Ctx2 > > >
 The join of two expansionsets. More...
 
struct  join_impl< expressionset< Ctx1 >, expressionset< Ctx2 > >
 The join of two expressionsets. More...
 
struct  join_impl< letterset< GenSet >, letterset< GenSet > >
 
struct  join_impl< letterset< GenSet >, wordset< GenSet > >
 The join with another labelset. More...
 
struct  join_impl< letterset< GenSet1 >, expressionset< Ctx2 > >
 Join of a letterset and an expressionset. More...
 
struct  join_impl< nullableset< letterset< GenSet > >, wordset< GenSet > >
 
struct  join_impl< nullableset< LS1 >, LS2 >
 The join with another labelset. More...
 
struct  join_impl< nullableset< LS1 >, nullableset< LS2 > >
 The join with another labelset. More...
 
struct  join_impl< oneset, oneset >
 
struct  join_impl< polynomialset< Ctx1, Kind1 >, polynomialset< Ctx2, Kind2 > >
 
struct  join_impl< polynomialset< Ctx1, Kind1 >, WS2 >
 
struct  join_impl< q, expressionset< Context > >
 
struct  join_impl< r, expressionset< Context > >
 
struct  join_impl< rat::identities, rat::identities >
 
struct  join_impl< tupleset< VS1... >, tupleset< VS2... > >
 Join between two tuplesets, of the same size. More...
 
struct  join_impl< tupleset< VS1... >, VS2 >
 Join between a tupleset, and a non tuple. More...
 
struct  join_impl< wordset< GenSet >, wordset< GenSet > >
 
struct  join_impl< z, expressionset< Context > >
 
struct  join_impl< zmin, expressionset< Context > >
 
struct  join_impl_simple
 
struct  join_impl_simple< WeightSet, expressionset< Context > >
 
struct  label_t_of_impl
 
struct  label_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::label_t > >
 
struct  label_t_of_impl< ValueSet, void_t< typename ValueSet::label_t > >
 
struct  labelset_t_of_impl
 
struct  labelset_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::labelset_t > >
 
struct  labelset_t_of_impl< ValueSet, void_t< typename ValueSet::labelset_t > >
 
struct  labelset_types_impl
 A traits so that tupleset may define types that may exist. More...
 
struct  labelset_types_impl< decltype(pass{std::declval< ValueSets >().genset()...}, void()), ValueSets... >
 Specialization for tuples of labelsets. More...
 
struct  law_traits
 The LAW from a LAL. More...
 
struct  law_traits< expressionset< Ctx > >
 Conversion to a wordset: identity. More...
 
struct  law_traits< letterset< GenSet > >
 Conversion for letterset<GenSet> to a super wordset. More...
 
struct  law_traits< nullableset< LabelSet > >
 Conversion for nullable<LabelSet> to a super wordset. More...
 
struct  law_traits< oneset >
 Conversion to a wordset: identity. More...
 
struct  law_traits< tupleset< LabelSets... > >
 Conversion to wordset. More...
 
struct  law_traits< wordset< GenSet > >
 
class  lazy_proper_automaton_impl
 Build a "lazy proper" automaton from the input with nullable labels. More...
 
class  lazy_proper_automaton_impl< Aut, false >
 Specialization for automata with non nullable context. More...
 
class  lazy_tuple_automaton
 Decorator implementing the laziness for an algorithm. More...
 
class  left_reductioner
 
struct  letterized_traits
 A traits to compute the letterized context. More...
 
struct  letterized_traits< letterset< GenSet > >
 Conversion to letterized. More...
 
struct  letterized_traits< nullableset< LabelSet > >
 Conversion to letterized. More...
 
struct  letterized_traits< tupleset< LabelSets... > >
 Conversion to letterized. More...
 
struct  letterized_traits< wordset< GenSet > >
 Conversion to letterized. More...
 
class  letterizer
 From an automaton, the corresponding automaton with a non-word labelset. More...
 
struct  lifter_impl
 Helper structure for a lift of several tapes. More...
 
struct  lifter_impl< Context, vcsn::detail::index_sequence<> >
 Lift all the label tapes to the weights. More...
 
class  lightest_impl
 The lightest algorithm computes the paths between pre and post with the smallest weight possible. More...
 
class  log_impl
 
struct  make_index_range
 
struct  make_index_range< S, 0 >
 
struct  make_index_range< S,-1U >
 
struct  make_index_sequence
 
struct  make_index_sequence< 0 >
 
struct  make_index_sequence< 1 >
 
class  min_plus_impl
 
class  minimizer
 
class  minimizer< Aut, moore_tag >
 
class  minimizer< Aut, signature_tag >
 
class  minimizer< Aut, weighted_tag >
 
class  mutable_automaton_impl
 Bidirectional automata. More...
 
struct  naive_profiler
 Compute a state profile for state-elimination based on connectivity. More...
 
class  name_automaton_impl
 An incremental automaton whose states are names. More...
 
class  nmin_impl
 
struct  nullable_helper
 Add support for an empty word to a LabelSet that does not provide such special label to this end. More...
 
struct  nullable_helper< letterset< GenSet > >
 Add support for an empty word to a letterset thanks to the one() of its genset. More...
 
struct  nullableset_traits
 The smallest nullableset which includes LabelSet. More...
 
struct  nullableset_traits< expressionset< Ctx > >
 Conversion to a nullableset: identity. More...
 
struct  nullableset_traits< letterset< GenSet > >
 Conversion for letterset<GenSet> to a nullableset. More...
 
struct  nullableset_traits< nullableset< LabelSet > >
 Conversion for nullable<LabelSet> to a nullableset: id. More...
 
struct  nullableset_traits< oneset >
 Conversion to a nullableset: identity. More...
 
struct  nullableset_traits< wordset< GenSet > >
 wordset is already a nullableset. More...
 
struct  or_
 Or condition on several typenames. More...
 
struct  or_< F1 >
 
struct  or_< F1, F... >
 
struct  or_<>
 
struct  origins_t_of_impl
 From an (input) automaton type, compute its origin_t type. More...
 
struct  origins_t_of_impl< partition_automaton< Aut > >
 
struct  origins_t_of_impl< transpose_automaton< Aut > >
 
class  pair_automaton_impl
 The pair automaton is used by several algorithms for synchronizing words. More...
 
struct  partial_identity_context
 
class  partition_automaton_impl
 An automaton wrapper whose states form a partition of the state set of another automaton. More...
 
struct  partition_automaton_t_impl
 From an (input) automaton type, compute the right decorator for its partition_automaton. More...
 
struct  partition_automaton_t_impl< partition_automaton< Aut > >
 
struct  partition_automaton_t_impl< transpose_automaton< Aut > >
 
struct  pass
 Ignore its arguments. More...
 
class  permutation_automaton_impl
 An automaton isomorphic to another one. More...
 
class  polynomialset_impl
 Linear combination of labels: map labels to weights. More...
 
class  polystate_automaton_impl
 An automaton whose state names are polynomials of states. More...
 
class  printer
 Factor common bits in automaton formatting. More...
 
class  product_automaton_impl
 Build the (accessible part of the) product. More...
 
struct  project_labelset_impl
 The type of the resulting apparent LabelSet when keeping only tape Tape. More...
 
struct  project_labelset_impl< Tape, expressionset< Context > >
 Case of multitape expressionsets. More...
 
struct  project_labelset_impl< Tape, tupleset< LabelSets... > >
 Case of tuplesets. More...
 
struct  proper_traits
 From a labelset, its non-nullable labelset. More...
 
struct  proper_traits< nullableset< LabelSet > >
 
struct  proper_traits< tupleset< LabelSet > >
 Transform a tupleset of one element to a tupleset of the proper version. More...
 
class  properer
 Spontaneous transition elimination. More...
 
class  q_impl
 
class  qmp_impl
 
class  quotienter
 Apply a quotient onto an automaton: fuse equivalent states. More...
 
class  r_impl
 
struct  rank
 Number of tapes. More...
 
struct  rank< tupleset< LabelSet... > >
 
struct  real_context_impl
 When we copy a focus automaton, create another focus automaton. More...
 
struct  real_context_impl< automaton_decorator< Aut > >
 Be recursive on automaton wrappers. More...
 
struct  real_context_impl< focus_automaton< Tape, Aut > >
 
struct  res_label_t_of_impl
 
struct  res_label_t_of_impl< insplit_automaton< Aut > >
 
struct  res_labelset_t_of_impl
 
struct  res_labelset_t_of_impl< insplit_automaton< Aut > >
 
class  reverse_postorder_impl
 Get all states in reverse postorder using depth first search. More...
 
class  rmin_impl
 
class  scc_automaton_impl
 An automaton decorator that maps states to their scc-number. More...
 
class  scc_impl
 Class template for strongly-connected-components computations. More...
 
class  scc_impl< Aut, auto_tag >
 By default, use Tarjan iterative. More...
 
class  scc_impl< Aut, dijkstra_tag >
 Compute the strongly connected components using Dijkstra's algorithm. More...
 
class  scc_impl< Aut, kosaraju_tag >
 Compute the strongly connected components using Kosaraju's algorithm. More...
 
class  scc_impl< Aut, tarjan_iterative_tag >
 Tarjan's algorithm to find all strongly connected components: iterative implementation. More...
 
class  scc_impl< Aut, tarjan_recursive_tag >
 Tarjan's algorithm to find all strongly connected components: recursive implementation. More...
 
struct  select
 
struct  select< q >
 
struct  select< r >
 
struct  select< z >
 
class  sorter
 A function to sort an automaton. More...
 
struct  standard_operations
 Implementation of left- and right- multiplication of an automaton by a weight. More...
 
class  star_heighter
 
class  state_bimap
 A bidirectional map from state names to state numbers. More...
 
class  state_bimap< StateNameset, Stateset, false >
 A bidirectional map from state names to state numbers. More...
 
class  state_bimap< StateNameset, Stateset, true >
 A bidirectional map from state names to state numbers. More...
 
struct  state_eliminator
 Eliminate states in an automaton. More...
 
struct  state_t_of_impl
 
struct  state_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::state_t > >
 
struct  state_t_of_impl< ValueSet, void_t< typename ValueSet::state_t > >
 
class  synchronize_checker
 
class  synchronized_automaton_impl
 An automaton whose states may be qualified by delays and/or prefixes. More...
 
class  synchronizer
 
class  tikzer
 Format automaton to TikZ format. More...
 
struct  transition_less
 Compare transitions of an automaton. More...
 
class  transition_map
 Cache the outgoing transitions of an automaton as efficient maps label -> vector<(weight, dst)>. More...
 
struct  transition_t_of_impl
 
struct  transition_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::transition_t > >
 
struct  transition_t_of_impl< ValueSet, void_t< typename ValueSet::transition_t > >
 
class  transpose_automaton_impl
 Read-write on an automaton, that transposes everything. More...
 
class  transposer
 A visitor to create a transposed expression,. More...
 
class  trie_builder
 Build a trie automaton (prefix-tree-like automaton). More...
 
class  tuple_automaton_impl
 An automaton whose states are tuples of states of automata. More...
 
struct  tuple_printer
 
struct  tuple_printer< Tuple, 1 >
 
class  tupleset_impl
 A ValueSet which is a Cartesian product of ValueSets. More...
 
class  universaler
 Functor for universal. More...
 
struct  voider
 
struct  weight_t_of_impl
 
struct  weight_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::weight_t > >
 
struct  weight_t_of_impl< ValueSet, void_t< typename ValueSet::weight_t > >
 
struct  weightset_t_of_impl
 
struct  weightset_t_of_impl< std::shared_ptr< ValueSet >, void_t< typename ValueSet::weightset_t > >
 
struct  weightset_t_of_impl< ValueSet, void_t< typename ValueSet::weightset_t > >
 
struct  welement_label
 Storage for a label. More...
 
struct  welement_label< empty_t >
 Storage for a label in the case of the empty labelset. More...
 
struct  welement_weight
 Storage for a non-null weight. More...
 
struct  welement_weight< bool >
 Storage for a non-null single-bit weight: don't actually store anything. More...
 
class  wet_bitset
 Weighted set: labels are non-negative integers, weights are bools. More...
 
struct  wet_kind_impl
 wet_impl<Key, Value>: map. More...
 
struct  wet_kind_impl< char, bool >
 wet_impl<char, bool>: bitsets. More...
 
struct  wet_kind_impl< Key, bool >
 wet_impl<Key, bool>: set. More...
 
class  wet_map
 Weighted set: general, ordered, case. More...
 
class  wet_set
 Weighted set: weights are bools. More...
 
class  wet_unordered_map
 Weighted set: general, unordered, case. More...
 
class  word_synchronizer
 
struct  worded_automaton
 
class  z_impl
 
class  zmin_impl
 

Typedefs

template<Automaton Aut>
using res_labelset_t_of = typename res_labelset_t_of_impl< Aut >::type
 
template<Automaton Aut>
using res_label_t_of = typename res_label_t_of_impl< Aut >::type
 
template<Automaton Aut>
using full_context_t_of = typename full_context_t_of_impl< Aut >::type
 
template<Automaton Aut>
using determinization_tag = std::conditional_t< std::is_same< weight_t_of< Aut >, bool >::value, boolean_tag, weighted_tag >
 The best tag depending on the type of Aut. More...
 
template<Automaton Aut>
using letterized_ls = letterized_traits< labelset_t_of< Aut >>
 
template<typename Ctx , size_t... Tapes>
using lifter_t = lifter_impl< Ctx, detail::index_sequence< Tapes... >>
 A traits to lift the Tapes of the labels to the weights. More...
 
template<Automaton Aut, size_t... Tapes>
using lifted_automaton_t = mutable_automaton< typename lifter_t< context_t_of< Aut >, Tapes... >::context_t >
 
template<typename ExpSet >
using lifted_expressionset_t = expressionset< typename lifter_t< context_t_of< ExpSet >>::context_t >
 
template<Automaton Aut>
using has_fado_t = std::integral_constant< bool,((context_t_of< Aut >::is_lal||context_t_of< Aut >::is_lan)&&std::is_same< weightset_t_of< Aut >, b >::value)>
 
template<Automaton Aut>
using component_t = std::unordered_set< state_t_of< Aut >>
 A strongly-connected component: set of states. More...
 
template<Automaton Aut>
using components_t = std::vector< component_t< Aut >>
 A set of strongly-connected components. More...
 
template<Automaton Aut>
using fresh_worded_automaton_t = fresh_automaton_t_of< typename worded_automaton< Aut >::automaton_t >
 
template<Automaton Aut>
using synchronized_automaton = std::shared_ptr< synchronized_automaton_impl< Aut >>
 
template<Automaton... Auts>
using join_automata_t = decltype(join_automata< std::declval< Auts >()... >)
 The type of the join between automata of type Auts. More...
 
template<Automaton Aut>
using origins_t_of = typename origins_t_of_impl< Aut >::type
 The type of the origins map for a partition automaton, or a transposed one. More...
 
template<Automaton Aut, wet_kind_t Kind = wet_kind<labelset_t_of<Aut>, weightset_t_of<Aut>>(), bool Lazy = false>
using polystate_automaton = std::shared_ptr< polystate_automaton_impl< Aut, Kind, Lazy >>
 A polystate automaton as a shared pointer. More...
 
template<typename LabelSet >
using generators_t = decltype(std::declval< LabelSet >().generators())
 A probe for the LabelSet::generators(). More...
 
template<typename LabelSet >
using has_generators_mem_fn = detect< LabelSet, generators_t >
 Whether LabelSet features a generators() member function. More...
 
template<typename LabelSet >
using one_t = decltype(std::declval< LabelSet >().one())
 
template<typename LabelSet >
using has_one_mem_fn = detect< LabelSet, one_t >
 
template<typename LabelSet >
using letterized_t = typename letterized_traits< LabelSet >::labelset_t
 
template<typename LabelSet >
using is_letterized_t = bool_constant< letterized_traits< LabelSet >::is_letterized >
 
template<typename Context >
using letterized_context = context< letterized_t< labelset_t_of< Context >>, weightset_t_of< Context >>
 
template<typename LabelSet >
using nullableset_t = typename nullableset_traits< LabelSet >::type
 The smallest nullableset that includes LabelSet. More...
 
template<typename Ctx >
using nullableset_context_t = context< nullableset_t< labelset_t_of< Ctx >>, weightset_t_of< Ctx >>
 
template<typename LabelSet >
using proper_t = typename proper_traits< LabelSet >::type
 The type of the corresponding proper LabelSet. More...
 
template<typename Context >
using proper_context = context< proper_t< labelset_t_of< Context >>, weightset_t_of< Context >>
 
template<typename Context >
using free_context = context< proper_t< letterized_t< labelset_t_of< Context >>>, weightset_t_of< Context >>
 
template<typename LabelSet >
using law_t = typename law_traits< LabelSet >::type
 The smallest wordset that includes LabelSet. More...
 
template<typename Ctx >
using word_context_t = context< law_t< labelset_t_of< Ctx >>, weightset_t_of< Ctx >>
 
template<typename... ValueSets>
using labelset_types = labelset_types_impl< void, ValueSets... >
 
template<size_t Tape, typename LabelSet >
using project_labelset = typename project_labelset_impl< Tape, LabelSet >::type
 The type of the resulting apparent LabelSet when keeping only tape Tape. More...
 
template<size_t Tape, typename Context >
using project_context = context< project_labelset< Tape, labelset_t_of< Context >>, weightset_t_of< Context >>
 The type of the resulting apparent context when keeping only tape Tape. More...
 
template<typename Ctx >
using word_polynomialset_t = polynomialset< word_context_t< Ctx >>
 
template<typename T >
using test_t = decltype(std::declval< T >().size())
 
template<typename T >
using has_size_mem_fn = detect< T, test_t >
 Whether T features a size() function. More...
 
template<typename S1 , typename S2 >
using Concat = typename concat< S1, S2 >::type
 
template<std::size_t N>
using GenSeq = typename make_index_sequence< N >::type
 
template<std::size_t S, std::size_t L>
using make_index_range_t = typename make_index_range< S, L >::type
 
template<typename S1 , typename S2 >
using concat_sequence = typename concat_index_sequence< S1, S2 >::type
 
template<typename S1 , typename S2 >
using sequence_difference = typename index_sequence_difference< typename S1::type, typename S2::type >::type
 
template<typename... Ts>
using void_t = typename voider< Ts... >::type
 
template<wet_kind_t Kind, typename Key , typename Value , typename Compare , typename Hash , typename KeyEqual >
using wet_impl = std::conditional_t< Kind==wet_kind_t::bitset, wet_bitset, std::conditional_t< Kind==wet_kind_t::set, wet_set< Key, Compare >, std::conditional_t< Kind==wet_kind_t::map, wet_map< Key, Value, Compare >, std::conditional_t< Kind==wet_kind_t::unordered_map, wet_unordered_map< Key, Value, Hash, KeyEqual >, void > > > >
 A weighted set type from its kind. More...
 

Functions

template<Automaton Aut>
boost::optional< std::vector< transition_t_of< Aut > > > bellman_ford_impl (const Aut &aut, state_t_of< Aut > source)
 Bellman-Ford implementation of lightest automaton. More...
 
template<Automaton Aut>
auto real_context (const Aut &aut) -> decltype(real_context_impl< Aut >::context(aut))
 For a focus automaton, its genuine context (not the visible one), and for all the other automata, their context. More...
 
template<Automaton Aut>
delay_automaton< Aut > make_delay_automaton (const Aut &aut)
 
template<Automaton Aut, typename ValueSet , typename Mul >
auto make_dijkstra_impl (const Aut &aut, const ValueSet &vs, Mul mul)
 
template<Automaton Aut>
ATTRIBUTE_CONST std::enable_if_t<!labelset_t_of< Aut >::has_one(), size_t > num_spontaneous_transitions (const Aut &)
 
template<Automaton Aut>
std::enable_if_t< labelset_t_of< Aut >::has_one(), size_t > num_spontaneous_transitions (const Aut &aut)
 
template<Automaton Aut>
size_t num_lazy_states (const Aut &a)
 
template<Automaton Aut>
auto insplit (Aut &aut) -> std::enable_if_t< labelset_t_of< Aut >::has_one(), decltype(make_insplit_automaton(aut))>
 
template<Automaton Aut>
std::enable_if_t<!labelset_t_of< Aut >::has_one(), Aut > insplit (Aut &aut)
 
template<Automaton Aut>
std::enable_if_t< labelset_t_of< Aut >::has_one(), bool > is_proper_ (const Aut &aut)
 
template<Automaton Aut>
constexpr std::enable_if_t<!labelset_t_of< Aut >::has_one(), bool > is_proper_ (const Aut &)
 
template<Automaton Aut>
bool is_synchronized (const Aut &aut)
 
template<Automaton Aut>
fresh_automaton_t_of< Aut > absval (const Aut &aut)
 Copy of aut, with absolute values. More...
 
template<Automaton Aut>
bool is_properable (Aut &&aut)
 Whether proper_here(aut) succeeds. More...
 
template<Automaton Aut>
std::enable_if_t<!is_letterized_t< labelset_t_of< Aut > >{}, mutable_automaton< letterized_context< context_t_of< Aut > > > > letterize (const Aut &aut)
 Letterize an automaton whose type is not letterized already. More...
 
template<Automaton Aut>
std::enable_if_t< is_letterized_t< labelset_t_of< Aut > >{}, const Aut & > letterize (const Aut &aut)
 Letterize an automaton whose type is letterized: do nothing. More...
 
template<Automaton Aut>
std::enable_if_t<!is_letterized_t< labelset_t_of< Aut > >{}, bool > is_letterized (const Aut &aut)
 
template<Automaton Aut>
std::enable_if_t< is_letterized_t< labelset_t_of< Aut > >{}, bool > is_letterized (const Aut &)
 
static labelset_t::value_t kept_label (const in_label_t &l)
 Label in the output. More...
 
template<size_t... I>
static labelset_t::value_t kept_label_ (const in_label_t &l, seq< I... >)
 
static weight_tapes_t::value_t weight_label (const in_label_t &l)
 Weight in the output. More...
 
template<size_t... I>
static weight_tapes_t::value_t weight_label_ (const in_label_t &l, seq< I... >)
 
template<typename LabelSet , typename WeightSet , size_t... Tapes>
lifter_t< context< LabelSet, WeightSet >, Tapes... >::context_t lift_context (const context< LabelSet, WeightSet > &ctx)
 lift(ctx) -> ctx More...
 
template<typename Context >
lifted_expressionset_t< expressionset< Context > > lift_expressionset (const expressionset< Context > &rs, boost::optional< vcsn::rat::identities > ids={})
 lift(expressionset) -> expressionset More...
 
template<Automaton Aut, typename Tag >
std::vector< transition_t_of< Aut > > lightest_path_tag (const Aut &aut, state_t_of< Aut > src, state_t_of< Aut > dst)
 Tag-based dispatch on implementation. More...
 
template<Automaton Aut>
auto fado_impl_ (const Aut &aut, std::ostream &out) -> std::enable_if_t< has_fado_t< Aut >
 
template<Automaton Aut>
ATTRIBUTE_NORETURN auto fado_impl_ (const Aut &, std::ostream &) -> std::enable_if_t<!has_fado_t< Aut >
 
template<Automaton Aut>
auto grail_impl_ (const Aut &aut, std::ostream &out) -> std::enable_if_t< has_fado_t< Aut >
 
template<Automaton Aut>
ATTRIBUTE_NORETURN auto grail_impl_ (const Aut &, std::ostream &) -> std::enable_if_t<!has_fado_t< Aut >
 
template<size_t Tape, typename Context >
auto project (const expressionset< Context > &rs)
 Project an expressionset to one tape. More...
 
template<size_t Tape, typename ValueSet >
auto project (const ValueSet &vs, const typename ValueSet::value_t &v)
 Project a value to one tape. More...
 
template<size_t Tape, typename Context , wet_kind_t Kind>
auto project (const polynomialset< Context, Kind > &ps)
 Project a polynomialset to one tape. More...
 
template<Automaton Aut>
auto make_properer (Aut aut, bool prune=true, const std::string &algo="auto")
 
template<Automaton Aut>
auto strip (const Aut &aut, int) -> decltype(aut->strip())
 
template<Automaton Aut>
auto strip (const Aut &aut, long) -> decltype(aut)
 
template<Automaton Aut>
synchronizer< Aut >::out_automaton_t synchronize (const Aut &aut)
 
template<Automaton... Aut, typename Operation >
auto dispatch_tags (std::string algo, Operation op, Aut &&...auts)
 Dispatch an operation between automata depending on their nature. More...
 
template<Automaton... Auts>
auto make_join_automaton (deterministic_tag, Auts &&...auts)
 Make an empty automaton which is a supertype of others. More...
 
template<Automaton... Auts>
auto make_join_automaton (general_tag, Auts &&...auts) -> decltype(nullable_join_automata(std::forward< Auts >(auts)...))
 Make an empty automaton which is a supertype of others, and with a nullable labelset. More...
 
template<Automaton... Auts>
auto make_join_automaton (standard_tag, Auts &&...auts)
 Make an empty automaton which is a supertype of others. More...
 
template<Automaton Aut, typename Profiler >
state_eliminator< Aut, Profiler > make_state_eliminator (Aut &a, Profiler &profiler)
 
template<typename ExpSet >
auto letter_class_impl (const ExpSet &, const letter_class_t &, bool, std::false_type, std::true_type) -> typename ExpSet::value_t
 
template<typename ExpSet >
auto letter_class_impl (const ExpSet &rs, const letter_class_t &chars, bool accept, std::false_type, std::false_type) -> typename ExpSet::value_t
 
template<typename ExpSet >
auto letter_class_impl (const ExpSet &rs, const letter_class_t &, bool, std::true_type, std::false_type) -> typename ExpSet::value_t
 
std::string quote (const std::string &s)
 Turn a label into a parsable label: escape special characters. More...
 
template<direction Dir, typename PolynomialSet >
trie_builder< free_context< context_t_of< PolynomialSet > >, Dir > make_trie_builder (const PolynomialSet &ps)
 Instantiate a trie-builder for this type of polynomialset. More...
 
template<typename Aut >
auto all_out (const Aut &aut, state_t_of< Aut > s)
 Indexes of transitions leaving state s. More...
 
template<typename Aut , typename Pred >
auto all_out (const Aut &aut, state_t_of< Aut > s, Pred pred)
 Indexes of transitions leaving state s that validate the predicate. More...
 
template<typename Aut >
auto out (const Aut &aut, state_t_of< Aut > s)
 Indexes of visible transitions leaving state s. More...
 
template<typename Aut >
auto out (const Aut &aut, state_t_of< Aut > s, label_t_of< Aut > l)
 Indexes of all transitions leaving state s on label l. More...
 
template<typename Aut >
auto all_in (const Aut &aut, state_t_of< Aut > s)
 Indexes of transitions entering state s. More...
 
template<typename Aut , typename Pred >
auto all_in (const Aut &aut, state_t_of< Aut > s, Pred pred)
 Indexes of transitions entering state s that validate the predicate. More...
 
template<typename Aut >
auto in (const Aut &aut, state_t_of< Aut > s)
 Indexes of visible transitions arriving to state s. More...
 
template<typename Aut >
auto in (const Aut &aut, state_t_of< Aut > s, label_t_of< Aut > l)
 Indexes of visible transitions arriving to state s on label l. More...
 
template<typename Aut >
auto initial_transitions (const Aut &aut) -> decltype(aut->all_out(aut->pre()))
 Indexes of transitions to (visible) initial states. More...
 
template<typename Aut >
auto final_transitions (const Aut &aut) -> decltype(aut->all_in(aut->post()))
 Indexes of transitions from (visible) final states. More...
 
template<typename Aut >
auto outin (const Aut &aut, state_t_of< Aut > s, state_t_of< Aut > d)
 Indexes of visible transitions from state s to state d. More...
 
template<typename Aut >
void del_transition (const Aut &aut, state_t_of< Aut > s, state_t_of< Aut > d)
 Remove all the transitions between s and d. More...
 
template<typename Aut >
auto all_transitions (const Aut &aut)
 All the transition indexes between all states (including pre and post). More...
 
template<typename Aut , typename Pred >
auto all_transitions (const Aut &aut, Pred pred)
 All the transition indexes between all states (including pre and post), that validate pred. More...
 
template<typename Aut >
bool is_special (const Aut &aut, transition_t_of< Aut > t)
 Whether this transition is from pre or to post. More...
 
template<typename Aut >
auto transitions (const Aut &aut) -> decltype(all_transitions(aut, is_special_t< Aut >
 All the transition indexes between visible states. More...
 
template<Automaton... Auts>
auto join_automata (Auts &&...auts) -> decltype(make_mutable_automaton(join(auts->context()...)))
 An automaton whose type is the join between those of auts. More...
 
template<Automaton... Auts>
auto nullable_join_context (Auts &&...auts) -> decltype(make_nullableset_context(join(auts->context()...)))
 The nullable context of the join between parameters' context. More...
 
template<Automaton... Auts>
auto nullable_join_automata (Auts &&...auts) -> decltype(make_mutable_automaton(nullable_join_context(auts...)))
 An automaton whose type is the nullable join between those of auts. More...
 
template<Automaton... Auts>
auto meet_automata (Auts &&...auts) -> decltype(make_mutable_automaton(meet(auts->context()...)))
 An automaton whose type is the meet between those of auts. More...
 
template<typename V1 , typename V2 >
join_impl< V1, V2 >::type join_ (V1 v1, V2 v2, int)
 Dealing with commutativity: two implementations of join_: forward and reversed, ordered by preference by the use of "0 prefers int to long" disambiguation rule. More...
 
template<typename V1 , typename V2 >
join_impl< V1, V2 >::type join_ (V2 v2, V1 v1, long)
 
template<Automaton Aut, wet_kind_t Kind = wet_kind<labelset_t_of<Aut>, weightset_t_of<Aut>>(), bool Lazy = false>
auto make_polystate_automaton (const Aut &aut)
 
template<size_t Tape, typename LabelSet , typename WeightSet >
auto project (const context< LabelSet, WeightSet > &ctx) -> std::enable_if_t< context< LabelSet, WeightSet >::is_lat, project_context< Tape, context< LabelSet, WeightSet >>>
 The resulting apparent context when keeping only tape Tape. More...
 
template<typename LabelSet >
auto label_one () -> std::enable_if_t< LabelSet::has_one(), typename LabelSet::value_t >
 This LabelSet's one(), if supported. More...
 
template<typename LabelSet >
ATTRIBUTE_NORETURN auto label_one () -> std::enable_if_t<!LabelSet::has_one(), typename LabelSet::value_t >
 
template<typename LabelSet >
auto label_one (const LabelSet &) -> typename LabelSet::value_t
 Enjoy type inference. More...
 
template<typename LabelSet >
letterized_t< LabelSet > make_letterized (const LabelSet &ls)
 
template<typename LabelSet , typename WeightSet >
letterized_context< context< LabelSet, WeightSet > > make_letterized_context (const context< LabelSet, WeightSet > &c)
 The letterized context for c. More...
 
template<typename LabelSet >
nullableset_t< LabelSet > make_nullableset (const LabelSet &ls)
 The nullableset of a labelset. More...
 
template<typename LabelSet , typename WeightSet >
nullableset_context_t< context< LabelSet, WeightSet > > make_nullableset_context (const context< LabelSet, WeightSet > &ctx)
 The nullableset context of a context. More...
 
template<typename LabelSet >
proper_t< LabelSet > make_proper (const LabelSet &ls)
 The corresponding proper LabelSet. More...
 
template<typename LabelSet , typename WeightSet >
auto make_proper_context (const context< LabelSet, WeightSet > &ctx) -> proper_context< context< LabelSet, WeightSet >>
 From a context, its non-nullable context. More...
 
template<typename LabelSet , typename WeightSet >
free_context< context< LabelSet, WeightSet > > make_free_context (const context< LabelSet, WeightSet > &c)
 The free context for c. More...
 
template<typename LabelSet >
law_t< LabelSet > make_wordset (const LabelSet &ls)
 The wordset of a labelset. More...
 
template<typename LabelSet , typename WeightSet >
word_context_t< context< LabelSet, WeightSet > > make_word_context (const context< LabelSet, WeightSet > &ctx)
 The wordset context of a context. More...
 
template<typename LabelSet >
std::ostream & print_label_ranges_ (const LabelSet &ls, const std::vector< typename LabelSet::value_t > &letters, const std::vector< typename LabelSet::value_t > &alphabet, std::ostream &out, format fmt)
 Print a set of labels with ranges. More...
 
template<typename LabelSet >
std::ostream & print_label_class (const LabelSet &ls, const std::vector< typename LabelSet::value_t > &letters, std::ostream &out, format fmt)
 Print a set of labels (letterized) with classes. More...
 
template<typename LabelSet >
LabelSet::letters_t conv_label_class_ (const LabelSet &ls, std::istream &i)
 Read a set of letters (hence, guaranteed in order, and unique). More...
 
template<typename LabelSet , typename Fun >
void conv_label_class_ (const LabelSet &ls, std::istream &i, Fun fun)
 Read and process a class of letters. More...
 
template<typename... ValueSets>
tupleset< ValueSets... > make_tupleset (const ValueSets &...vss)
 
template<typename Ctx >
auto make_word_polynomialset (const Ctx &ctx) -> word_polynomialset_t< Ctx >
 The polynomialset of words of a labelset (not necessarily on words itself). More...
 
template<typename Range , typename Predicate >
bool any_of (const Range &r, Predicate p)
 
template<typename Container >
Container::value_type back (const Container &container)
 The last member of this Container. More...
 
template<typename Container , typename Predicate >
void erase_if (Container &c, const Predicate &p)
 
template<typename Container >
Container::value_type front (const Container &container)
 The first member of this Container. More...
 
template<typename Iterator , typename Pred , typename Less >
boost::iterator_range< Iterator > initial_sorted_range (Iterator begin, Iterator end, Pred pred, Less less)
 The return the longest initial range of elements matching the predicate. More...
 
template<typename Container , typename Compare >
bool is_sorted_forward (const Container &container, Compare comp)
 Same as std::is_sorted, but works with an input iterator, not just a forward iterator. More...
 
template<typename Container >
Container::value_type max_forward (const Container &container)
 Same as *std::max_element, but works with an input iterator, not just a forward iterator. More...
 
template<typename Range , typename Predicate >
bool none_of (const Range &r, Predicate p)
 
template<typename Range , typename Value >
bool none_of_equal (const Range &r, const Value &value)
 
static int debug_level ()
 Debug level set in the user's environment. More...
 
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 >
ATTRIBUTE_NORETURN void invalid_argument (const std::string &kind, const std::string &key, const C &map)
 
ATTRIBUTE_PURE unsigned int gcd (unsigned int a, unsigned int b)
 Greatest common divisor. More...
 
ATTRIBUTE_PURE unsigned int lcm (unsigned int a, unsigned int b)
 Lowest common multiple. More...
 
template<typename Range >
std::queue< typename Range::value_type > make_queue (const Range &range)
 The content of cont as a queue. More...
 
template<typename T >
void print_ (std::ostream &o, const T &arg, long)
 Serialize arg into o. More...
 
void print_ (std::ostream &o, std::istream &is, long)
 When printing an istream, consider that we are trying to help the user by showing what's wrong with the input. More...
 
void print_ (std::ostream &o, std::istringstream &is, long)
 Disambiguation: both 'istream&' and 'const T&' are elligible. More...
 
template<typename T >
auto print_ (std::ostream &o, const T &arg, int) -> decltype(arg.print_set(o), void())
 Serialize arg, which supports print_set, into o. More...
 
template<typename Then , typename Else >
auto static_if (std::true_type, Then &&then, Else &&)
 Execute the then-clause. More...
 
template<typename Then , typename Else >
auto static_if (std::false_type, Then &&, Else &&else_)
 Execute the else-clause. More...
 
template<bool cond, typename Then , typename Else >
auto static_if (Then &&then, Else &&else_)
 Execute the then- or the else-clause depending on cond. More...
 
template<bool cond, typename Then >
auto static_if (Then &&then)
 Execute the then-clause if cond is verified. More...
 
template<typename Fun , typename... Ts>
void for_ (const std::tuple< Ts... > &ts, Fun f)
 
template<typename Fun , typename... Ts, size_t... I>
void for_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >)
 
template<typename Fun , typename... Ts>
auto map (const std::tuple< Ts... > &ts, Fun f) -> decltype(map_tuple_(f, ts, make_index_sequence< sizeof...(Ts)>()))
 Map a function on a tuple, return tuple of the results. More...
 
template<typename Fun , typename... Ts, size_t... I>
auto map_tuple_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >) -> decltype(map_variadic_(f, std::get< I >(ts)...))
 
template<typename Fun >
auto map_variadic_ (Fun) -> decltype(std::make_tuple())
 
template<typename Fun , typename T , typename... Ts>
auto map_variadic_ (Fun f, T t, Ts &&...ts) -> decltype(std::tuple_cat(std::make_tuple(f(t)), map_variadic_(f, ts...)))
 
template<typename Fun >
void cross (Fun f)
 Variadic Cartesian product of containers. More...
 
template<typename Fun , typename Cont , typename... Conts>
void cross (Fun f, const Cont &head, const Conts &...tails)
 
template<typename Fun , typename... Ts, size_t... I>
void cross_tuple_ (Fun f, const std::tuple< Ts... > &ts, index_sequence< I... >)
 
template<typename Fun , typename... Ts>
void cross_tuple (Fun f, const std::tuple< Ts... > &ts)
 
template<typename... Ts>
auto reverse_tuple (const std::tuple< Ts... > &t) -> decltype(reverse_tuple(t, make_index_sequence< sizeof...(Ts)>()))
 
template<typename... Ts, std::size_t... I>
auto reverse_tuple (const std::tuple< Ts... > &t, index_sequence< I... >) -> decltype(std::make_tuple(std::get< sizeof...(Ts)-1-I >(t)...))
 
template<typename... Ts>
auto make_gcc_tuple (Ts &&...ts) -> decltype(reverse_tuple(std::make_tuple(std::forward< Ts >(ts)...)))
 Same as make_tuple, unless the evaluation of arguments if right-to-left, in which case reverse the result. More...
 
template<typename... Args>
std::ostream & print (const std::tuple< Args... > &args, std::ostream &o)
 
template<typename Cont >
std::vector< typename Cont::value_type > make_vector (const Cont &cont)
 The content of cont as a vector. More...
 
template<typename Key , typename Value >
constexpr wet_kind_t wet_kind ()
 Given a Key and a Value type, the appropriate weighted set type. More...
 
 VCSN_JOIN_SIMPLE (b, b)
 
template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
polynomialset< Context, Kind > make_polynomialset (const Context &context)
 

Variables

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
struct lifter_impl< context< tupleset< LabelSets... >, WeightSet >, vcsn::detail::index_sequence< Tapes... >, std::enable_if_t<(0< sizeof...(Tapes))> >{using in_labelset_t=tupleset< LabelSets... >;using in_context_t=context< in_labelset_t, WeightSet >;using in_label_t=typename in_labelset_t::value_t;template< std::size_t...I > using seq=detail::index_sequence< I... >;template< typename S, typename L > struct tape_set;template< typename LabelSet > struct tape_set< seq<>, LabelSet >{using type=oneset;};template< size_t...I, typename LabelSet > struct tape_set< seq< I... >, LabelSet >{using type=tupleset< typename LabelSet::template valueset_t< I >... >;};using index_t=typename detail::make_index_sequence< in_labelset_t::size()>::type;static constexpr size_t number_of_tapes=in_labelset_t::size();template< size_t I > using tape_labelset_t=typename in_labelset_t::template valueset_t< I >;using kept_index_t=sequence_difference< index_t, seq< Tapes... > >;using labelset_t=typename tape_set< kept_index_t, in_labelset_t >::type;using weight_index_t=seq< Tapes... >;using weight_tapes_t=typename tape_set< weight_index_t, in_labelset_t >::type;using inner_context_t=context< weight_tapes_t, WeightSet >;using weightset_t=expressionset< inner_context_t >;using context_t=context< labelset_t, weightset_t >;static context_t value(const in_context_t &ctx, vcsn::rat::identities ids){return value_(ctx, ids, weight_index_t{}, kept_index_t{});}template< size_t...WeightTapes, size_t...KeptTapes > static context_t value_(const in_context_t &ctx, vcsn::rat::identities ids, seq< WeightTapes... >, seq< KeptTapes... >){auto ls=labelset_t{ctx.labelset() -> template set< KeptTapes > ()...}
 Specialization: lift only some tapes. More...
 
auto weight_tapes = weight_tapes_t{ctx.labelset()->template set<WeightTapes>()...}
 
auto ictx = inner_context_t{weight_tapes, *ctx.weightset()}
 
auto rs = weightset_t{ictx, ids}
 
 return {ls, rs}
 
 void
 
 v
 
xalloc< long int > indentation
 

Typedef Documentation

template<Automaton Aut>
using vcsn::detail::component_t = typedef std::unordered_set<state_t_of<Aut>>

A strongly-connected component: set of states.

Benches show that using std::unordered_set is better than std::set about ~10x. For example: std::set: 5.53s: a.scc("tarjan_iterative") # a = std((abc)*{1000}) std::unordered_set: 0.58s: a.scc("tarjan_iterative") # a = std((abc)*{1000})

Definition at line 41 of file scc.hh.

template<Automaton Aut>
using vcsn::detail::components_t = typedef std::vector<component_t<Aut>>

A set of strongly-connected components.

Definition at line 45 of file scc.hh.

template<typename S1 , typename S2 >
using vcsn::detail::Concat = typedef typename concat<S1, S2>::type

Definition at line 40 of file tuple.hh.

template<typename S1 , typename S2 >
using vcsn::detail::concat_sequence = typedef typename concat_index_sequence<S1, S2>::type

Definition at line 84 of file tuple.hh.

template<Automaton Aut>
using vcsn::detail::determinization_tag = typedef std::conditional_t<std::is_same<weight_t_of<Aut>, bool>::value, boolean_tag, weighted_tag>

The best tag depending on the type of Aut.

Definition at line 266 of file determinize.hh.

template<typename Context >
using vcsn::detail::free_context = typedef context<proper_t<letterized_t<labelset_t_of<Context>>>, weightset_t_of<Context>>

Definition at line 240 of file labelset.hh.

template<Automaton Aut>
using vcsn::detail::fresh_worded_automaton_t = typedef fresh_automaton_t_of<typename worded_automaton<Aut>::automaton_t>

Definition at line 72 of file synchronize.hh.

template<Automaton Aut>
using vcsn::detail::full_context_t_of = typedef typename full_context_t_of_impl<Aut>::type

Definition at line 38 of file compose.hh.

template<typename LabelSet >
using vcsn::detail::generators_t = typedef decltype(std::declval<LabelSet>().generators())

A probe for the LabelSet::generators().

Definition at line 21 of file labelset.hh.

template<std::size_t N>
using vcsn::detail::GenSeq = typedef typename make_index_sequence<N>::type

Definition at line 44 of file tuple.hh.

template<Automaton Aut>
using vcsn::detail::has_fado_t = typedef std::integral_constant<bool, ((context_t_of<Aut>::is_lal || context_t_of<Aut>::is_lan) && std::is_same<weightset_t_of<Aut>, b>::value)>

Definition at line 37 of file print.hh.

template<typename LabelSet >
using vcsn::detail::has_generators_mem_fn = typedef detect<LabelSet, generators_t>

Whether LabelSet features a generators() member function.

Definition at line 25 of file labelset.hh.

template<typename LabelSet >
using vcsn::detail::has_one_mem_fn = typedef detect<LabelSet, one_t>

Definition at line 36 of file labelset.hh.

template<typename T >
using vcsn::detail::has_size_mem_fn = typedef detect<T, test_t>

Whether T features a size() function.

Definition at line 17 of file military-order.hh.

template<typename LabelSet >
using vcsn::detail::is_letterized_t = typedef bool_constant<letterized_traits<LabelSet>::is_letterized>

Definition at line 106 of file labelset.hh.

template<Automaton... Auts>
using vcsn::detail::join_automata_t = typedef decltype(join_automata<std::declval<Auts>()...>)

The type of the join between automata of type Auts.

Definition at line 21 of file join-automata.hh.

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

Definition at line 56 of file tupleset.hh.

template<typename LabelSet >
using vcsn::detail::law_t = typedef typename law_traits<LabelSet>::type

The smallest wordset that includes LabelSet.

Definition at line 264 of file labelset.hh.

template<typename Context >
using vcsn::detail::letterized_context = typedef context<letterized_t<labelset_t_of<Context>>, weightset_t_of<Context>>

Definition at line 123 of file labelset.hh.

template<Automaton Aut>
using vcsn::detail::letterized_ls = typedef letterized_traits<labelset_t_of<Aut>>

Definition at line 101 of file letterize.hh.

template<typename LabelSet >
using vcsn::detail::letterized_t = typedef typename letterized_traits<LabelSet>::labelset_t

Definition at line 102 of file labelset.hh.

template<Automaton Aut, size_t... Tapes>
using vcsn::detail::lifted_automaton_t = typedef mutable_automaton<typename lifter_t<context_t_of<Aut>, Tapes...>::context_t>

Definition at line 192 of file lift.hh.

template<typename ExpSet >
using vcsn::detail::lifted_expressionset_t = typedef expressionset<typename lifter_t<context_t_of<ExpSet>>::context_t>

Definition at line 277 of file lift.hh.

template<typename Ctx , size_t... Tapes>
using vcsn::detail::lifter_t = typedef lifter_impl<Ctx, detail::index_sequence<Tapes...>>

A traits to lift the Tapes of the labels to the weights.

Definition at line 187 of file lift.hh.

template<std::size_t S, std::size_t L>
using vcsn::detail::make_index_range_t = typedef typename make_index_range<S, L>::type

Definition at line 74 of file tuple.hh.

template<typename Ctx >
using vcsn::detail::nullableset_context_t = typedef context<nullableset_t<labelset_t_of<Ctx>>, weightset_t_of<Ctx>>

Definition at line 169 of file labelset.hh.

template<typename LabelSet >
using vcsn::detail::nullableset_t = typedef typename nullableset_traits<LabelSet>::type

The smallest nullableset that includes LabelSet.

Definition at line 153 of file labelset.hh.

template<typename LabelSet >
using vcsn::detail::one_t = typedef decltype(std::declval<LabelSet>().one())

Definition at line 33 of file labelset.hh.

template<Automaton Aut>
using vcsn::detail::origins_t_of = typedef typename origins_t_of_impl<Aut>::type

The type of the origins map for a partition automaton, or a transposed one.

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

template<Automaton Aut, wet_kind_t Kind = wet_kind<labelset_t_of<Aut>, weightset_t_of<Aut>>(), bool Lazy = false>
using vcsn::detail::polystate_automaton = typedef std::shared_ptr<polystate_automaton_impl<Aut, Kind, Lazy>>

A polystate automaton as a shared pointer.

Definition at line 304 of file polystate-automaton.hh.

template<size_t Tape, typename Context >
using vcsn::detail::project_context = typedef context<project_labelset<Tape, labelset_t_of<Context>>, weightset_t_of<Context>>

The type of the resulting apparent context when keeping only tape Tape.

Definition at line 1265 of file tupleset.hh.

template<size_t Tape, typename LabelSet >
using vcsn::detail::project_labelset = typedef typename project_labelset_impl<Tape, LabelSet>::type

The type of the resulting apparent LabelSet when keeping only tape Tape.

Undefined when not applicable.

Definition at line 1237 of file tupleset.hh.

template<typename Context >
using vcsn::detail::proper_context = typedef context<proper_t<labelset_t_of<Context>>, weightset_t_of<Context>>

Definition at line 221 of file labelset.hh.

template<typename LabelSet >
using vcsn::detail::proper_t = typedef typename proper_traits<LabelSet>::type

The type of the corresponding proper LabelSet.

Definition at line 203 of file labelset.hh.

template<Automaton Aut>
using vcsn::detail::res_label_t_of = typedef typename res_label_t_of_impl<Aut>::type

Definition at line 37 of file compose.hh.

template<Automaton Aut>
using vcsn::detail::res_labelset_t_of = typedef typename res_labelset_t_of_impl<Aut>::type

Definition at line 36 of file compose.hh.

template<typename S1 , typename S2 >
using vcsn::detail::sequence_difference = typedef typename index_sequence_difference<typename S1::type, typename S2::type>::type

Definition at line 138 of file tuple.hh.

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

Definition at line 206 of file synchronize.hh.

template<typename T >
using vcsn::detail::test_t = typedef decltype(std::declval<T>().size())

Definition at line 13 of file military-order.hh.

template<typename... Ts>
using vcsn::detail::void_t = typedef typename voider<Ts...>::type

Definition at line 25 of file type_traits.hh.

template<wet_kind_t Kind, typename Key , typename Value , typename Compare , typename Hash , typename KeyEqual >
using vcsn::detail::wet_impl = typedef std::conditional_t<Kind == wet_kind_t::bitset, wet_bitset, std::conditional_t<Kind == wet_kind_t::set, wet_set<Key, Compare>, std::conditional_t<Kind == wet_kind_t::map, wet_map<Key, Value, Compare>, std::conditional_t<Kind == wet_kind_t::unordered_map, wet_unordered_map<Key, Value, Hash, KeyEqual>, void> > > >

A weighted set type from its kind.

Definition at line 837 of file wet.hh.

template<typename Ctx >
using vcsn::detail::word_context_t = typedef context<law_t<labelset_t_of<Ctx>>, weightset_t_of<Ctx>>

Definition at line 280 of file labelset.hh.

template<typename Ctx >
using vcsn::detail::word_polynomialset_t = typedef polynomialset<word_context_t<Ctx>>

Definition at line 15 of file word-polynomialset.hh.

Function Documentation

template<Automaton Aut>
fresh_automaton_t_of<Aut> vcsn::detail::absval ( const Aut &  aut)

Copy of aut, with absolute values.

Templated to avoid useless instantiations.

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

References vcsn::copy(), and transitions().

Referenced by vcsn::detail::is_valider< Aut, has_one >::is_valid_().

Here is the call graph for this function:

template<typename Aut , typename Pred >
auto vcsn::detail::all_in ( const Aut &  aut,
state_t_of< Aut >  s,
Pred  pred 
)

Indexes of transitions entering state s that validate the predicate.

Invalidated by del_transition() and del_state().

Definition at line 96 of file automaton.hh.

References vcsn::make_container_filter_range().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::detail::all_out ( const Aut &  aut,
state_t_of< Aut >  s 
)

Indexes of transitions leaving state s.

Invalidated by del_transition() and del_state().

Definition at line 37 of file automaton.hh.

Referenced by vcsn::accessible_states(), vcsn::detail::lazy_tuple_automaton< product_automaton_impl< Lazy, Aut, Auts... >, false, Lazy, Aut, Auts... >::all_out(), vcsn::detail::derived_term_automaton_impl< ExpSet >::all_out(), vcsn::detail::epsilon_remover< Aut, has_one >::build_heap_(), vcsn::detail::transition_map< automaton_t, weightset_t_of< automaton_t >, true, true >::build_map_(), vcsn::detail::cycle_identity_impl< Aut >::check(), vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_(), vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_impl_(), vcsn::eval(), vcsn::detail::bounded_lag_checker< Aut >::has_bounded_lag(), vcsn::detail::epsilon_remover< Aut, has_one >::in_situ_remover_(), vcsn::is_complete(), vcsn::is_deterministic(), vcsn::are_isomorphicer< Aut1, Aut2 >::is_isomorphism_valid_throwing(), vcsn::is_partial_identity(), vcsn::detail::standard_operations< Aut >::left_mult_here(), vcsn::detail::letterizer< AutIn, AutOut >::letterize(), vcsn::detail::lightest_impl< Aut >::lightest_(), vcsn::detail::minimizer< Aut, signature_tag >::minimizer(), vcsn::detail::quotienter< Aut >::operator()(), vcsn::detail::dijkstra_impl< Aut, ValueSet, Mul >::operator()(), vcsn::detail::a_star_impl< Aut >::operator()(), vcsn::detail::epsilon_remover_distance< Aut, has_one >::operator()(), out(), outin(), vcsn::detail::dotter< Aut >::print_transitions_(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::remover_on(), vcsn::detail::enumerater< Aut >::shortest_(), vcsn::detail::minimizer< Aut, weighted_tag >::signature(), vcsn::ss_shortest_distance(), vcsn::standard_here(), vcsn::are_isomorphicer< Aut1, Aut2 >::state_to_class(), vcsn::detail::naive_profiler< Aut >::update(), vcsn::detail::delgado_profiler< Aut >::update(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::update_profile_(), vcsn::detail::epsilon_remover< Aut, has_one >::update_profile_(), vcsn::rat::zpc_visitor< Aut, ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::standard_visitor< Aut, ExpSet >::VCSN_RAT_VISIT(), and vcsn::detail::sorter< Aut >::visit_successors_of_().

template<typename Aut , typename Pred >
auto vcsn::detail::all_out ( const Aut &  aut,
state_t_of< Aut >  s,
Pred  pred 
)

Indexes of transitions leaving state s that validate the predicate.

Invalidated by del_transition() and del_state().

Definition at line 47 of file automaton.hh.

References vcsn::make_container_filter_range().

Here is the call graph for this function:

template<typename Aut , typename Pred >
auto vcsn::detail::all_transitions ( const Aut &  aut,
Pred  pred 
)

All the transition indexes between all states (including pre and post), that validate pred.

Definition at line 192 of file automaton.hh.

References vcsn::make_container_filter_range().

Here is the call graph for this function:

template<typename Range , typename Predicate >
bool vcsn::detail::any_of ( const Range &  r,
Predicate  p 
)

Definition at line 15 of file algorithm.hh.

Referenced by vcsn::rat::star_normal_form_visitor< ExpSet >::box_of().

template<typename Container >
Container::value_type vcsn::detail::back ( const Container &  container)

The last member of this Container.

Should be specialized for containers with random access.

Definition at line 27 of file algorithm.hh.

Referenced by vcsn::detail::evaluator< Aut >::operator()(), vcsn::rat::parser::parse(), and vcsn::partial_identity().

template<Automaton Aut>
boost::optional<std::vector<transition_t_of<Aut> > > vcsn::detail::bellman_ford_impl ( const Aut &  aut,
state_t_of< Aut >  source 
)

Bellman-Ford implementation of lightest automaton.

Function applying Bellman-Ford algorithm to the automaton given as parameter. Return the array of lightest 'in' transition of each state.

Definition at line 27 of file bellman-ford.hh.

References all_transitions(), vcsn::rat::size(), and transitions().

Referenced by vcsn::has_lightening_cycle(), and vcsn::lightest_path().

Here is the call graph for this function:

template<typename LabelSet >
LabelSet::letters_t vcsn::detail::conv_label_class_ ( const LabelSet &  ls,
std::istream &  i 
)

Read a set of letters (hence, guaranteed in order, and unique).

Definition at line 450 of file labelset.hh.

Referenced by conv_label_class_(), vcsn::detail::tupleset_impl< ValueSets >::convs(), and vcsn::detail::genset_labelset< GenSet >::convs_().

template<typename LabelSet , typename Fun >
void vcsn::detail::conv_label_class_ ( const LabelSet &  ls,
std::istream &  i,
Fun  fun 
)

Read and process a class of letters.

Stream i is after the '[', read up to the closing ']', excluded. Apply fun to all the letters. Take negation into account. Classes can never be empty. For instance "[a-d0-9_]", or "[^a-fz], or "[^]", but not "[]".

Beware that symbols are processed as they are discovered, so there is no guarantee that symbols will be processed only once: [aaa] will process a three times. If this is undesirable, use the overload below that returns a set.

Precondition
i does not start with ']' or '-'.

Definition at line 391 of file labelset.hh.

References conv_label_class_(), vcsn::require(), and vcsn::set_difference().

Here is the call graph for this function:

template<typename Fun >
void vcsn::detail::cross ( Fun  f)
inline

Variadic Cartesian product of containers.

Based on http://stackoverflow.com/questions/13813007/

Beware of name conflicts with vcsn/misc/cross.

Definition at line 207 of file tuple.hh.

Referenced by cross(), cross_tuple_(), and vcsn::detail::polynomialset_impl< Context, Kind >::tuple().

template<typename Fun , typename Cont , typename... Conts>
void vcsn::detail::cross ( Fun  f,
const Cont &  head,
const Conts &...  tails 
)
inline

Definition at line 215 of file tuple.hh.

References cross().

Here is the call graph for this function:

template<typename Fun , typename... Ts>
void vcsn::detail::cross_tuple ( Fun  f,
const std::tuple< Ts... > &  ts 
)
inline

Definition at line 235 of file tuple.hh.

References cross_tuple_().

Referenced by vcsn::detail::compose_automaton_impl< Lazy, Lhs, Rhs >::add_compose_transitions(), vcsn::detail::product_automaton_impl< Lazy, Aut, Auts >::add_conjunction_transitions(), and vcsn::rat::expansionset< ExpSet >::tuple_impl< Expansions >::tuple().

Here is the call graph for this function:

template<typename Fun , typename... Ts, size_t... I>
void vcsn::detail::cross_tuple_ ( Fun  f,
const std::tuple< Ts... > &  ts,
index_sequence< I... >   
)
inline

Definition at line 226 of file tuple.hh.

References cross().

Referenced by cross_tuple().

Here is the call graph for this function:

static int vcsn::detail::debug_level ( )
inlinestatic

Debug level set in the user's environment.

Definition at line 11 of file debug-level.hh.

Referenced by vcsn::rat::driver::parse().

template<typename Aut >
void vcsn::detail::del_transition ( const Aut &  aut,
state_t_of< Aut >  s,
state_t_of< Aut >  d 
)

Remove all the transitions between s and d.

Definition at line 170 of file automaton.hh.

References make_vector(), and outin().

Here is the call graph for this function:

template<Automaton... Aut, typename Operation >
auto vcsn::detail::dispatch_tags ( std::string  algo,
Operation  op,
Aut &&...  auts 
)

Dispatch an operation between automata depending on their nature.

Definition at line 32 of file tags.hh.

References vcsn::all(), vcsn::is_deterministic(), vcsn::is_standard(), vcsn::require(), and vcsn::str_escape().

Referenced by vcsn::dyn::multiply(), vcsn::dyn::detail::multiply_repeated(), vcsn::dyn::star(), and vcsn::dyn::sum().

Here is the call graph for this function:

template<typename Container , typename Predicate >
void vcsn::detail::erase_if ( Container &  c,
const Predicate &  p 
)

Definition at line 41 of file algorithm.hh.

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

template<Automaton Aut>
auto vcsn::detail::fado_impl_ ( const Aut &  aut,
std::ostream &  out 
) -> std::enable_if_t<has_fado_t<Aut>

Definition at line 41 of file print.hh.

template<Automaton Aut>
ATTRIBUTE_NORETURN auto vcsn::detail::fado_impl_ ( const Aut &  ,
std::ostream &   
) -> std::enable_if_t<!has_fado_t<Aut>

Definition at line 50 of file print.hh.

template<typename Fun , typename... Ts>
void vcsn::detail::for_ ( const std::tuple< Ts... > &  ts,
Fun  f 
)
inline

Definition at line 142 of file tuple.hh.

template<typename Fun , typename... Ts, size_t... I>
void vcsn::detail::for_ ( Fun  f,
const std::tuple< Ts... > &  ts,
index_sequence< I... >   
)
inline

Definition at line 149 of file tuple.hh.

References void.

ATTRIBUTE_PURE unsigned int vcsn::detail::gcd ( unsigned int  a,
unsigned int  b 
)
inline

Greatest common divisor.

Definition at line 13 of file math.hh.

References vcsn::require().

Referenced by lcm(), vcsn::detail::z_impl::lgcd(), and vcsn::detail::q_impl::value_t::reduce().

Here is the call graph for this function:

template<Automaton Aut>
auto vcsn::detail::grail_impl_ ( const Aut &  aut,
std::ostream &  out 
) -> std::enable_if_t<has_fado_t<Aut>

Definition at line 59 of file print.hh.

template<Automaton Aut>
ATTRIBUTE_NORETURN auto vcsn::detail::grail_impl_ ( const Aut &  ,
std::ostream &   
) -> std::enable_if_t<!has_fado_t<Aut>

Definition at line 68 of file print.hh.

template<typename Aut >
auto vcsn::detail::in ( const Aut &  aut,
state_t_of< Aut >  s 
)
template<typename Aut >
auto vcsn::detail::in ( const Aut &  aut,
state_t_of< Aut >  s,
label_t_of< Aut >  l 
)

Indexes of visible transitions arriving to state s on label l.

Invalidated by del_transition() and del_state().

Definition at line 118 of file automaton.hh.

References all_in().

Here is the call graph for this function:

template<typename Iterator , typename Pred , typename Less >
boost::iterator_range<Iterator> vcsn::detail::initial_sorted_range ( Iterator  begin,
Iterator  end,
Pred  pred,
Less  less 
)

The return the longest initial range of elements matching the predicate.

Definition at line 71 of file algorithm.hh.

Referenced by vcsn::rat::printer< ExpSet >::letter_range().

template<typename Aut >
auto vcsn::detail::initial_transitions ( const Aut &  aut) -> decltype(aut->all_out(aut->pre()))
template<Automaton Aut>
auto vcsn::detail::insplit ( Aut &  aut) -> std::enable_if_t<labelset_t_of<Aut>::has_one(), decltype(make_insplit_automaton(aut))>

Definition at line 291 of file insplit.hh.

References vcsn::make_insplit_automaton().

Referenced by vcsn::insplit().

Here is the call graph for this function:

template<Automaton Aut>
std::enable_if_t<!labelset_t_of<Aut>::has_one(), Aut> vcsn::detail::insplit ( Aut &  aut)

Definition at line 302 of file insplit.hh.

template<typename C >
ATTRIBUTE_NORETURN void vcsn::detail::invalid_argument ( const std::string &  kind,
const std::string &  key,
const C &  map 
)

Definition at line 20 of file getargs.hh.

References vcsn::copy().

Referenced by vcsn::getarg< Value >::operator[]().

Here is the call graph for this function:

template<Automaton Aut>
std::enable_if_t<!is_letterized_t<labelset_t_of<Aut> >{}, bool> vcsn::detail::is_letterized ( const Aut &  aut)

Definition at line 162 of file letterize.hh.

References transitions().

Referenced by vcsn::is_letterized(), vcsn::nullableset< LabelSet >::is_letterized(), vcsn::detail::tupleset_impl< ValueSets >::is_letterized_(), and vcsn::detail::letterized_traits< tupleset< LabelSets... > >::is_letterized_().

Here is the call graph for this function:

template<Automaton Aut>
std::enable_if_t<is_letterized_t<labelset_t_of<Aut> >{}, bool> vcsn::detail::is_letterized ( const Aut &  )

Definition at line 179 of file letterize.hh.

template<Automaton Aut>
std::enable_if_t<labelset_t_of<Aut>::has_one(), bool> vcsn::detail::is_proper_ ( const Aut &  aut)
inline

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

References transitions().

Referenced by vcsn::is_proper().

Here is the call graph for this function:

template<Automaton Aut>
constexpr std::enable_if_t<!labelset_t_of<Aut>::has_one(), bool> vcsn::detail::is_proper_ ( const Aut &  )
inline

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

template<Automaton Aut>
bool vcsn::detail::is_properable ( Aut &&  aut)

Whether proper_here(aut) succeeds.

Destroys aut.

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

Referenced by vcsn::detail::is_valider< Aut, has_one >::is_valid_().

template<typename Container , typename Compare >
bool vcsn::detail::is_sorted_forward ( const Container &  container,
Compare  comp 
)

Same as std::is_sorted, but works with an input iterator, not just a forward iterator.

See http://stackoverflow.com/questions/25906893.

Definition at line 92 of file algorithm.hh.

Referenced by vcsn::is_out_sorted().

template<typename Aut >
bool vcsn::detail::is_special ( const Aut &  aut,
transition_t_of< Aut >  t 
)
template<Automaton Aut>
bool vcsn::detail::is_synchronized ( const Aut &  aut)

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

template<typename V1 , typename V2 >
join_impl<V1, V2>::type vcsn::detail::join_ ( V1  v1,
V2  v2,
int   
)

Dealing with commutativity: two implementations of join_: forward and reversed, ordered by preference by the use of "0 prefers int to long" disambiguation rule.

Definition at line 26 of file join.hh.

References vcsn::join().

Referenced by vcsn::join().

Here is the call graph for this function:

template<typename V1 , typename V2 >
join_impl<V1, V2>::type vcsn::detail::join_ ( V2  v2,
V1  v1,
long   
)

Definition at line 33 of file join.hh.

References vcsn::join().

Here is the call graph for this function:

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

An automaton whose type is the join between those of auts.

Definition at line 13 of file join-automata.hh.

References vcsn::join(), and vcsn::make_mutable_automaton().

Referenced by vcsn::infiltration(), vcsn::ldiv_here(), make_join_automaton(), and vcsn::shuffle().

Here is the call graph for this function:

static labelset_t::value_t vcsn::detail::kept_label ( const in_label_t &  l)
static

Label in the output.

Definition at line 158 of file lift.hh.

References kept_label_().

Here is the call graph for this function:

template<size_t... I>
static labelset_t::value_t vcsn::detail::kept_label_ ( const in_label_t &  l,
seq< I... >   
)
static

Definition at line 165 of file lift.hh.

Referenced by kept_label().

template<typename LabelSet >
auto vcsn::detail::label_one ( ) -> std::enable_if_t<LabelSet::has_one(), typename LabelSet::value_t>
template<typename LabelSet >
ATTRIBUTE_NORETURN auto vcsn::detail::label_one ( ) -> std::enable_if_t<!LabelSet::has_one(), typename LabelSet::value_t>

Definition at line 54 of file labelset.hh.

References vcsn::sname().

Here is the call graph for this function:

template<typename LabelSet >
auto vcsn::detail::label_one ( const LabelSet &  ) -> typename LabelSet::value_t

Enjoy type inference.

Definition at line 70 of file labelset.hh.

ATTRIBUTE_PURE unsigned int vcsn::detail::lcm ( unsigned int  a,
unsigned int  b 
)
inline

Lowest common multiple.

Definition at line 28 of file math.hh.

References gcd().

Referenced by vcsn::detail::q_impl::add(), and vcsn::detail::q_impl::sub().

Here is the call graph for this function:

template<typename ExpSet >
auto vcsn::detail::letter_class_impl ( const ExpSet &  ,
const letter_class_t ,
bool  ,
std::false_type  ,
std::true_type   
) -> typename ExpSet::value_t

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

Referenced by vcsn::to_expression().

template<typename ExpSet >
auto vcsn::detail::letter_class_impl ( const ExpSet &  rs,
const letter_class_t chars,
bool  accept,
std::false_type  ,
std::false_type   
) -> typename ExpSet::value_t

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

References rs.

template<typename ExpSet >
auto vcsn::detail::letter_class_impl ( const ExpSet &  rs,
const letter_class_t ,
bool  ,
std::true_type  ,
std::false_type   
) -> typename ExpSet::value_t

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

References rs.

template<Automaton Aut>
std::enable_if_t<!is_letterized_t<labelset_t_of<Aut> >{}, mutable_automaton<letterized_context<context_t_of<Aut> > > > vcsn::detail::letterize ( const Aut &  aut)

Letterize an automaton whose type is not letterized already.

Definition at line 107 of file letterize.hh.

References make_letterized().

Referenced by vcsn::letterize().

Here is the call graph for this function:

template<Automaton Aut>
std::enable_if_t<is_letterized_t<labelset_t_of<Aut> >{}, const Aut&> vcsn::detail::letterize ( const Aut &  aut)

Letterize an automaton whose type is letterized: do nothing.

Definition at line 119 of file letterize.hh.

template<typename LabelSet , typename WeightSet , size_t... Tapes>
lifter_t<context<LabelSet, WeightSet>, Tapes...>::context_t vcsn::detail::lift_context ( const context< LabelSet, WeightSet > &  ctx)

lift(ctx) -> ctx

Definition at line 197 of file lift.hh.

template<typename Context >
lifted_expressionset_t<expressionset<Context> > vcsn::detail::lift_expressionset ( const expressionset< Context > &  rs,
boost::optional< vcsn::rat::identities ids = {} 
)

lift(expressionset) -> expressionset

Definition at line 282 of file lift.hh.

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

template<Automaton Aut, typename Tag >
std::vector<transition_t_of<Aut> > vcsn::detail::lightest_path_tag ( const Aut &  aut,
state_t_of< Aut >  src,
state_t_of< Aut >  dst 
)

Tag-based dispatch on implementation.

Definition at line 37 of file lightest-path.hh.

References vcsn::lightest_path().

Here is the call graph for this function:

template<Automaton Aut>
delay_automaton< Aut > vcsn::detail::make_delay_automaton ( const Aut &  aut)

Definition at line 171 of file delay-automaton.hh.

template<Automaton Aut, typename ValueSet , typename Mul >
auto vcsn::detail::make_dijkstra_impl ( const Aut &  aut,
const ValueSet &  vs,
Mul  mul 
)
template<typename LabelSet , typename WeightSet >
free_context<context<LabelSet, WeightSet> > vcsn::detail::make_free_context ( const context< LabelSet, WeightSet > &  c)

The free context for c.

Definition at line 245 of file labelset.hh.

References vcsn::context< LabelSet, WeightSet >::labelset(), make_letterized(), make_proper(), and vcsn::context< LabelSet, WeightSet >::weightset().

Referenced by make_trie_builder().

Here is the call graph for this function:

template<typename... Ts>
auto vcsn::detail::make_gcc_tuple ( Ts &&...  ts) -> decltype(reverse_tuple(std::make_tuple(std::forward<Ts>(ts)...)))
inline

Same as make_tuple, unless the evaluation of arguments if right-to-left, in which case reverse the result.

Definition at line 307 of file tuple.hh.

References reverse_tuple().

Referenced by vcsn::detail::tupleset_impl< ValueSets >::conv_(), vcsn::detail::tupleset_impl< ValueSets >::get_letter_(), and vcsn::detail::tupleset_impl< ValueSets >::make_().

Here is the call graph for this function:

template<Automaton... Auts>
auto vcsn::detail::make_join_automaton ( deterministic_tag  ,
Auts &&...  auts 
)

Make an empty automaton which is a supertype of others.

Definition at line 78 of file tags.hh.

References join_automata().

Here is the call graph for this function:

template<Automaton... Auts>
auto vcsn::detail::make_join_automaton ( general_tag  ,
Auts &&...  auts 
) -> decltype(nullable_join_automata(std::forward<Auts>(auts)...))

Make an empty automaton which is a supertype of others, and with a nullable labelset.

Definition at line 87 of file tags.hh.

References nullable_join_automata().

Here is the call graph for this function:

template<Automaton... Auts>
auto vcsn::detail::make_join_automaton ( standard_tag  ,
Auts &&...  auts 
)

Make an empty automaton which is a supertype of others.

Definition at line 97 of file tags.hh.

References join_automata().

Here is the call graph for this function:

template<typename LabelSet >
letterized_t<LabelSet> vcsn::detail::make_letterized ( const LabelSet &  ls)

Definition at line 110 of file labelset.hh.

References vcsn::detail::letterized_traits< LabelSet >::labelset().

Referenced by vcsn::detail::letterized_traits< tupleset< LabelSets... > >::labelset_(), letterize(), make_free_context(), and make_letterized_context().

Here is the call graph for this function:

template<typename LabelSet , typename WeightSet >
letterized_context<context<LabelSet, WeightSet> > vcsn::detail::make_letterized_context ( const context< LabelSet, WeightSet > &  c)

The letterized context for c.

Definition at line 128 of file labelset.hh.

References vcsn::context< LabelSet, WeightSet >::labelset(), make_letterized(), and vcsn::context< LabelSet, WeightSet >::weightset().

Here is the call graph for this function:

template<typename LabelSet >
nullableset_t<LabelSet> vcsn::detail::make_nullableset ( const LabelSet &  ls)
inline

The nullableset of a labelset.

Definition at line 158 of file labelset.hh.

Referenced by make_nullableset_context().

template<typename LabelSet , typename WeightSet >
nullableset_context_t<context<LabelSet, WeightSet> > vcsn::detail::make_nullableset_context ( const context< LabelSet, WeightSet > &  ctx)
inline

The nullableset context of a context.

Definition at line 174 of file labelset.hh.

References vcsn::context< LabelSet, WeightSet >::labelset(), make_nullableset(), and vcsn::context< LabelSet, WeightSet >::weightset().

Referenced by vcsn::make_nullable_automaton(), nullable_join_context(), vcsn::dyn::thompson(), and vcsn::dyn::zpc().

Here is the call graph for this function:

template<typename Context , wet_kind_t Kind = detail::wet_kind<labelset_t_of<Context>, weightset_t_of<Context>>()>
polynomialset<Context, Kind> vcsn::detail::make_polynomialset ( const Context &  context)
template<Automaton Aut, wet_kind_t Kind = wet_kind<labelset_t_of<Aut>, weightset_t_of<Aut>>(), bool Lazy = false>
auto vcsn::detail::make_polystate_automaton ( const Aut &  aut)

Definition at line 311 of file polystate-automaton.hh.

template<typename LabelSet >
proper_t<LabelSet> vcsn::detail::make_proper ( const LabelSet &  ls)

The corresponding proper LabelSet.

Definition at line 208 of file labelset.hh.

References vcsn::detail::proper_traits< LabelSet >::value().

Referenced by make_free_context(), and make_proper_context().

Here is the call graph for this function:

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

From a context, its non-nullable context.

Definition at line 226 of file labelset.hh.

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

Referenced by vcsn::detail::epsilon_remover_distance< Aut, has_one >::epsilon_remover_distance(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::epsilon_remover_separate(), and vcsn::detail::epsilon_remover< Aut, has_one >::operator()().

Here is the call graph for this function:

template<Automaton Aut>
auto vcsn::detail::make_properer ( Aut  aut,
bool  prune = true,
const std::string &  algo = "auto" 
)

Definition at line 209 of file proper.hh.

Referenced by vcsn::proper(), and vcsn::proper_here().

template<typename Range >
std::queue<typename Range::value_type> vcsn::detail::make_queue ( const Range &  range)

The content of cont as a queue.

Definition at line 14 of file queue.hh.

Referenced by vcsn::paths_ibfs().

template<Automaton Aut, typename Profiler >
state_eliminator<Aut, Profiler> vcsn::detail::make_state_eliminator ( Aut &  a,
Profiler &  profiler 
)

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

Referenced by vcsn::eliminate_state_here(), and vcsn::to_expression().

template<direction Dir, typename PolynomialSet >
trie_builder<free_context<context_t_of<PolynomialSet> >, Dir> vcsn::detail::make_trie_builder ( const PolynomialSet &  ps)

Instantiate a trie-builder for this type of polynomialset.

Definition at line 200 of file trie.hh.

References make_free_context().

Here is the call graph for this function:

template<typename... ValueSets>
tupleset<ValueSets...> vcsn::detail::make_tupleset ( const ValueSets &...  vss)

Definition at line 1053 of file tupleset.hh.

Referenced by vcsn::tuple_context().

template<typename LabelSet , typename WeightSet >
word_context_t<context<LabelSet, WeightSet> > vcsn::detail::make_word_context ( const context< LabelSet, WeightSet > &  ctx)
inline

The wordset context of a context.

Definition at line 285 of file labelset.hh.

References vcsn::context< LabelSet, WeightSet >::labelset(), make_wordset(), and vcsn::context< LabelSet, WeightSet >::weightset().

Referenced by vcsn::dyn::make_word_context(), and make_word_polynomialset().

Here is the call graph for this function:

template<typename Ctx >
auto vcsn::detail::make_word_polynomialset ( const Ctx &  ctx) -> word_polynomialset_t<Ctx>
inline

The polynomialset of words of a labelset (not necessarily on words itself).

Definition at line 21 of file word-polynomialset.hh.

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

Referenced by vcsn::detail::trie_builder< Context, Dir >::add_monomials(), vcsn::dyn::detail::cotrie_stream(), vcsn::dyn::lightest(), vcsn::path_monomial(), vcsn::dyn::shortest(), and vcsn::dyn::detail::trie_stream().

Here is the call graph for this function:

template<typename Fun , typename... Ts>
auto vcsn::detail::map ( const std::tuple< Ts... > &  ts,
Fun  f 
) -> decltype(map_tuple_(f, ts, make_index_sequence<sizeof...(Ts)>()))
inline

Map a function on a tuple, return tuple of the results.

Definition at line 160 of file tuple.hh.

References map_tuple_().

Referenced by vcsn::detail::trie_builder< Context, Dir >::add(), vcsn::detail::efsmer< Aut >::arc_type_(), vcsn::dyn::detail::codeterminize_(), vcsn::detail::derived_term_algo::derived_term_algo(), vcsn::dyn::detail::determinize_(), vcsn::detail::minimizer< Aut, moore_tag >::out_class(), and vcsn::detail::properer< Aut >::remover_().

Here is the call graph for this function:

template<typename Fun , typename... Ts, size_t... I>
auto vcsn::detail::map_tuple_ ( Fun  f,
const std::tuple< Ts... > &  ts,
index_sequence< I... >   
) -> decltype(map_variadic_(f, std::get<I>(ts)...))
inline

Definition at line 168 of file tuple.hh.

References map_variadic_().

Referenced by map().

Here is the call graph for this function:

template<typename Fun >
auto vcsn::detail::map_variadic_ ( Fun  ) -> decltype(std::make_tuple())
inline

Definition at line 178 of file tuple.hh.

Referenced by map_tuple_(), and map_variadic_().

template<typename Fun , typename T , typename... Ts>
auto vcsn::detail::map_variadic_ ( Fun  f,
t,
Ts &&...  ts 
) -> decltype(std::tuple_cat(std::make_tuple(f(t)), map_variadic_(f, ts...)))
inline

Definition at line 186 of file tuple.hh.

References map_variadic_().

Here is the call graph for this function:

template<typename Container >
Container::value_type vcsn::detail::max_forward ( const Container &  container)

Same as *std::max_element, but works with an input iterator, not just a forward iterator.

Definition at line 112 of file algorithm.hh.

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

An automaton whose type is the meet between those of auts.

Definition at line 45 of file join-automata.hh.

References vcsn::make_mutable_automaton(), and vcsn::meet().

Referenced by vcsn::conjunction(), and vcsn::conjunction_lazy().

Here is the call graph for this function:

template<typename Range , typename Predicate >
bool vcsn::detail::none_of ( const Range &  r,
Predicate  p 
)

Definition at line 130 of file algorithm.hh.

Referenced by none_of_equal().

template<typename Range , typename Value >
bool vcsn::detail::none_of_equal ( const Range &  r,
const Value &  value 
)

Definition at line 139 of file algorithm.hh.

References none_of(), and v.

Referenced by print_label_class().

Here is the call graph for this function:

template<Automaton... Auts>
auto vcsn::detail::nullable_join_automata ( Auts &&...  auts) -> decltype(make_mutable_automaton(nullable_join_context(auts...)))

An automaton whose type is the nullable join between those of auts.

Definition at line 36 of file join-automata.hh.

References vcsn::make_mutable_automaton(), and nullable_join_context().

Referenced by make_join_automaton().

Here is the call graph for this function:

template<Automaton... Auts>
auto vcsn::detail::nullable_join_context ( Auts &&...  auts) -> decltype(make_nullableset_context(join(auts->context()...)))

The nullable context of the join between parameters' context.

Definition at line 27 of file join-automata.hh.

References vcsn::join(), and make_nullableset_context().

Referenced by nullable_join_automata().

Here is the call graph for this function:

template<Automaton Aut>
size_t vcsn::detail::num_lazy_states ( const Aut &  a)

Definition at line 57 of file info.hh.

Referenced by vcsn::info().

template<Automaton Aut>
ATTRIBUTE_CONST std::enable_if_t<!labelset_t_of<Aut>::has_one(), size_t> vcsn::detail::num_spontaneous_transitions ( const Aut &  )

Definition at line 36 of file info.hh.

Referenced by vcsn::info().

template<Automaton Aut>
std::enable_if_t<labelset_t_of<Aut>::has_one(), size_t> vcsn::detail::num_spontaneous_transitions ( const Aut &  aut)

Definition at line 43 of file info.hh.

References transitions().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::detail::out ( const Aut &  aut,
state_t_of< Aut >  s 
)

Indexes of visible transitions leaving state s.

Invalidated by del_transition() and del_state().

Definition at line 56 of file automaton.hh.

References all_out().

Referenced by vcsn::aut_of_component(), vcsn::detail::epsilon_remover< Aut, has_one >::build_heap_(), vcsn::detail::determinized_automaton_impl< Aut, Kind, Lazy >::complete_(), vcsn::complete_here(), vcsn::detail::word_synchronizer< Aut >::dest_state(), vcsn::detail::reverse_postorder_impl< Aut >::dfs(), vcsn::detail::scc_impl< Aut, dijkstra_tag >::dfs(), vcsn::detail::scc_impl< Aut, kosaraju_tag >::dfs(), vcsn::detail::scc_impl< Aut, tarjan_iterative_tag >::dfs(), vcsn::detail::scc_impl< Aut, tarjan_recursive_tag >::dfs(), vcsn::efsm(), vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_(), vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_impl_(), vcsn::detail::epsilon_remover_distance< Aut, has_one >::epsilon_remover_distance(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::epsilon_remover_separate(), vcsn::eval(), vcsn::fado(), vcsn::grail(), vcsn::detail::epsilon_acyclic< Aut, true >::has_spontaneous_circuit(), vcsn::detail::epsilon_remover< Aut, has_one >::in_situ_remover_(), vcsn::info(), vcsn::dyn::info(), vcsn::is_out_sorted(), vcsn::is_synchronized_by(), vcsn::make_copier(), vcsn::detail::trie_builder< Context, Dir >::next_(), vcsn::detail::evaluator< Aut >::operator()(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::operator()(), vcsn::print(), vcsn::dyn::print(), print_label_class(), print_label_ranges_(), vcsn::detail::printer< Aut >::print_state_(), vcsn::detail::tikzer< Aut >::print_transitions_(), vcsn::detail::polynomialset_impl< Context, Kind >::print_weight_(), vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_(), vcsn::detail::polynomialset_impl< Context, Kind >::print_without_classes_(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::remover_on(), vcsn::star_here(), vcsn::subword_here(), vcsn::tikz(), vcsn::detail::naive_profiler< Aut >::update(), vcsn::detail::epsilon_remover_separate< transpose_in_automaton_t >::update_profile_(), vcsn::detail::epsilon_remover< Aut, has_one >::update_profile_(), vcsn::rat::thompson_visitor< Aut, ExpSet >::VCSN_RAT_VISIT(), vcsn::rat::standard_visitor< Aut, ExpSet >::VCSN_RAT_VISIT(), and vcsn::detail::universaler< Aut >::work_().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::detail::out ( const Aut &  aut,
state_t_of< Aut >  s,
label_t_of< Aut >  l 
)

Indexes of all transitions leaving state s on label l.

Invalidated by del_transition() and del_state().

Definition at line 69 of file automaton.hh.

References all_out().

Here is the call graph for this function:

template<typename Aut >
auto vcsn::detail::outin ( const Aut &  aut,
state_t_of< Aut >  s,
state_t_of< Aut >  d 
)

Indexes of visible transitions from state s to state d.

Invalidated by del_transition() and del_state().

Definition at line 159 of file automaton.hh.

References all_out().

Referenced by del_transition(), vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_(), and vcsn::detail::state_eliminator< Aut, Profiler >::eliminate_state_impl_().

Here is the call graph for this function:

template<typename... Args>
std::ostream& vcsn::detail::print ( const std::tuple< Args... > &  args,
std::ostream &  o 
)

Definition at line 339 of file tuple.hh.

template<typename T >
void vcsn::detail::print_ ( std::ostream &  o,
const T &  arg,
long   
)

Serialize arg into o.

Definition at line 25 of file raise.hh.

Referenced by print_(), vcsn::rat::printer< ExpSet >::print_child(), and vcsn::raise().

void vcsn::detail::print_ ( std::ostream &  o,
std::istream &  is,
long   
)
inline

When printing an istream, consider that we are trying to help the user by showing what's wrong with the input.

So report some of the upcoming bytes.

Definition at line 33 of file raise.hh.

References vcsn::str_escape().

Here is the call graph for this function:

void vcsn::detail::print_ ( std::ostream &  o,
std::istringstream &  is,
long   
)
inline

Disambiguation: both 'istream&' and 'const T&' are elligible.

Definition at line 45 of file raise.hh.

References print_().

Here is the call graph for this function:

template<typename T >
auto vcsn::detail::print_ ( std::ostream &  o,
const T &  arg,
int   
) -> decltype(arg.print_set(o), void())

Serialize arg, which supports print_set, into o.

Definition at line 52 of file raise.hh.

template<typename LabelSet >
std::ostream& vcsn::detail::print_label_class ( const LabelSet &  ls,
const std::vector< typename LabelSet::value_t > &  letters,
std::ostream &  out,
format  fmt 
)

Print a set of labels (letterized) with classes.

The order of the letters is respected; depending on the use case, you might want to call sort and unique before.

Definition at line 335 of file labelset.hh.

References vcsn::format::latex, none_of_equal(), out(), and print_label_ranges_().

Referenced by vcsn::rat::printer< ExpSet >::for(), and vcsn::detail::polynomialset_impl< Context, Kind >::print_with_classes_().

Here is the call graph for this function:

template<typename LabelSet >
std::ostream& vcsn::detail::print_label_ranges_ ( const LabelSet &  ls,
const std::vector< typename LabelSet::value_t > &  letters,
const std::vector< typename LabelSet::value_t > &  alphabet,
std::ostream &  out,
format  fmt 
)

Print a set of labels with ranges.

The order of the letters is respected; depending on the use case, you might want to call sort and unique before.

Definition at line 301 of file labelset.hh.

References vcsn::format::latex, and out().

Referenced by print_label_class().

Here is the call graph for this function:

template<size_t Tape, typename LabelSet , typename WeightSet >
auto vcsn::detail::project ( const context< LabelSet, WeightSet > &  ctx) -> std::enable_if_t<!context< LabelSet, WeightSet >::is_lat, context< LabelSet, WeightSet >>

The resulting apparent context when keeping only tape Tape.

When the labelset is not a tupleset, require the tape to be 0, and return it.

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

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

Here is the call graph for this function:

template<size_t Tape, typename Context >
auto vcsn::detail::project ( const expressionset< Context > &  rs)

Project an expressionset to one tape.

Definition at line 40 of file project.hh.

References vcsn::make_expressionset().

Here is the call graph for this function:

template<size_t Tape, typename ValueSet >
auto vcsn::detail::project ( const ValueSet &  vs,
const typename ValueSet::value_t &  v 
)

Project a value to one tape.

Definition at line 56 of file project.hh.

References v.

template<size_t Tape, typename Context , wet_kind_t Kind>
auto vcsn::detail::project ( const polynomialset< Context, Kind > &  ps)

Project a polynomialset to one tape.

Definition at line 66 of file project.hh.

References make_polynomialset().

Here is the call graph for this function:

std::string vcsn::detail::quote ( const std::string &  s)

Turn a label into a parsable label: escape special characters.

Definition at line 22 of file trie.hh.

Referenced by vcsn::lazy_automaton_editor::add_transition(), and vcsn::detail::trie_builder< Context, Dir >::add_words().

template<Automaton Aut>
auto vcsn::detail::real_context ( const Aut &  aut) -> decltype(real_context_impl<Aut>::context(aut))

For a focus automaton, its genuine context (not the visible one), and for all the other automata, their context.

Definition at line 72 of file copy.hh.

References vcsn::detail::real_context_impl< Aut >::context().

Referenced by vcsn::detail::real_context_impl< automaton_decorator< Aut > >::context(), and vcsn::make_fresh_automaton().

Here is the call graph for this function:

template<typename... Ts>
auto vcsn::detail::reverse_tuple ( const std::tuple< Ts... > &  t) -> decltype(reverse_tuple(t, make_index_sequence<sizeof...(Ts)>()))
inline

Definition at line 280 of file tuple.hh.

Referenced by make_gcc_tuple().

template<typename... Ts, std::size_t... I>
auto vcsn::detail::reverse_tuple ( const std::tuple< Ts... > &  t,
index_sequence< I... >   
) -> decltype(std::make_tuple(std::get<sizeof...(Ts) - 1 - I>(t)...))
inline

Definition at line 288 of file tuple.hh.

template<typename Then , typename Else >
auto vcsn::detail::static_if ( std::true_type  ,
Then &&  then,
Else &&   
)

Execute the then-clause.

Definition at line 13 of file static-if.hh.

Referenced by static_if().

template<typename Then , typename Else >
auto vcsn::detail::static_if ( std::false_type  ,
Then &&  ,
Else &&  else_ 
)

Execute the else-clause.

Definition at line 20 of file static-if.hh.

template<bool cond, typename Then , typename Else >
auto vcsn::detail::static_if ( Then &&  then,
Else &&  else_ 
)

Execute the then- or the else-clause depending on cond.

Definition at line 27 of file static-if.hh.

References static_if().

Here is the call graph for this function:

template<bool cond, typename Then >
auto vcsn::detail::static_if ( Then &&  then)

Execute the then-clause if cond is verified.

Definition at line 36 of file static-if.hh.

template<Automaton Aut>
auto vcsn::detail::strip ( const Aut &  aut,
int   
) -> decltype(aut->strip())

Definition at line 15 of file strip.hh.

Referenced by vcsn::detail::universaler< Aut >::operator()(), and vcsn::strip().

template<Automaton Aut>
auto vcsn::detail::strip ( const Aut &  aut,
long   
) -> decltype(aut)

Definition at line 24 of file strip.hh.

template<Automaton Aut>
synchronizer<Aut>::out_automaton_t vcsn::detail::synchronize ( const Aut &  aut)

Definition at line 332 of file synchronize.hh.

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

Here is the call graph for this function:

vcsn::detail::VCSN_JOIN_SIMPLE ( b  ,
b   
)
static weight_tapes_t::value_t vcsn::detail::weight_label ( const in_label_t &  l)
static

Weight in the output.

Definition at line 172 of file lift.hh.

References weight_label_().

Here is the call graph for this function:

template<size_t... I>
static weight_tapes_t::value_t vcsn::detail::weight_label_ ( const in_label_t &  l,
seq< I... >   
)
static

Definition at line 179 of file lift.hh.

Referenced by weight_label().

template<typename Key , typename Value >
constexpr wet_kind_t vcsn::detail::wet_kind ( )

Given a Key and a Value type, the appropriate weighted set type.

Definition at line 814 of file wet.hh.

Variable Documentation

auto vcsn::detail::ictx = inner_context_t{weight_tapes, *ctx.weightset()}

Definition at line 150 of file lift.hh.

xalloc<long int> vcsn::detail::indentation

Definition at line 18 of file indent.cc.

Referenced by vcsn::decindent(), vcsn::incindent(), vcsn::indent(), and vcsn::resetindent().

vcsn::detail::return {ls, rs}

Definition at line 153 of file lift.hh.

template<typename... LabelSets, typename WeightSet , size_t... Tapes>
struct lifter_impl< context< tupleset< LabelSets... >, WeightSet >, vcsn::detail::index_sequence< Tapes... >, std::enable_if_t<(0< sizeof...(Tapes))> > { using in_labelset_t=tupleset< LabelSets... >; using in_context_t=context< in_labelset_t, WeightSet >; using in_label_t=typename in_labelset_t::value_t; template< std::size_t...I > using seq=detail::index_sequence< I... >; template< typename S, typename L > struct tape_set; template< typename LabelSet > struct tape_set< seq<>, LabelSet > { using type=oneset; }; template< size_t...I, typename LabelSet > struct tape_set< seq< I... >, LabelSet > { using type=tupleset< typename LabelSet::template valueset_t< I >... >; }; using index_t =typename detail::make_index_sequence< in_labelset_t::size()>::type; static constexpr size_t number_of_tapes=in_labelset_t::size(); template< size_t I > using tape_labelset_t=typename in_labelset_t::template valueset_t< I >; using kept_index_t =sequence_difference< index_t, seq< Tapes... > >; using labelset_t=typename tape_set< kept_index_t, in_labelset_t >::type; using weight_index_t=seq< Tapes... >; using weight_tapes_t =typename tape_set< weight_index_t, in_labelset_t >::type; using inner_context_t=context< weight_tapes_t, WeightSet >; using weightset_t=expressionset< inner_context_t >; using context_t=context< labelset_t, weightset_t >; static context_t value(const in_context_t &ctx, vcsn::rat::identities ids) { return value_(ctx, ids, weight_index_t{}, kept_index_t{}); } template< size_t...WeightTapes, size_t...KeptTapes > static context_t value_(const in_context_t &ctx, vcsn::rat::identities ids, seq< WeightTapes... >, seq< KeptTapes... >) { auto ls=labelset_t{ctx.labelset() -> template vcsn::detail::set< KeptTapes >()...}

Specialization: lift only some tapes.

Definition at line 145 of file lift.hh.

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

Definition at line 68 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::rat::expansionset< expressionset_t >::complement(), vcsn::detail::determinized_automaton_impl< Aut, Kind, Lazy >::complete_(), vcsn::detail::nmin_impl::conv(), vcsn::detail::zmin_impl::conv(), vcsn::detail::rmin_impl::conv(), vcsn::detail::log_impl::conv(), vcsn::detail::f2_impl::conv(), vcsn::oneset::conv(), vcsn::detail::qmp_impl::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::rat::expansionset< expressionset_t >::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::expressionset_impl< Context >::is_universal(), 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(), none_of_equal(), vcsn::detail::polynomialset_impl< Context, Kind >::norm(), std::hash< vector< T, Alloc > >::operator()(), vcsn::detail::left_reductioner< Aut >::operator()(), vcsn::rat::printer< ExpSet >::precedence_(), vcsn::rat::expressionset_impl< Context >::print(), vcsn::rat::printer< ExpSet >::print_(), vcsn::rat::printer< ExpSet >::visit_tuple< bool, Dummy >::print_(), vcsn::rat::dot_printer< ExpSet >::visit_tuple< bool, Dummy >::print_(), project(), 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(), vcsn::to_string(), vcsn::detail::min_plus_impl< unsigned int >::transpose(), vcsn::oneset::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< expressionset_t >::VCSN_RAT_VISIT(), vcsn::rat::dot_printer< 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::constant_term_visitor< ExpSet >::visit(), vcsn::rat::printer< ExpSet >::visit(), vcsn::rat::info< ExpSet >::visit(), vcsn::rat::dot_printer< ExpSet >::visit(), vcsn::rat::derivation_visitor< ExpSet >::visit(), vcsn::rat::to_expansion_visitor< expressionset_t >::visit(), vcsn::wordset< GenSet >::word(), and vcsn::detail::tupleset_impl< ValueSets >::word().

vcsn::detail::void
Initial value:
{
fado(aut, out)
std::ostream & fado(const Aut &aut, std::ostream &out)
Definition: grail.hh:204
auto out(const Aut &aut, state_t_of< Aut > s)
Indexes of visible transitions leaving state s.
Definition: automaton.hh:56

Definition at line 43 of file print.hh.

Referenced by vcsn::detail::product_automaton_impl< Lazy, Aut, Auts >::add_one_transitions_(), vcsn::detail::product_automaton_impl< Lazy, Aut, Auts >::add_shuffle_transitions_(), vcsn::zipped_maps< Dereference, Maps >::iterator::align_(), vcsn::all(), vcsn::detail::dot::parser::basic_symbol< Base >::basic_symbol(), vcsn::rat::parser::basic_symbol< Base >::basic_symbol(), vcsn::detail::dot::parser::basic_symbol< Base >::clear(), vcsn::rat::parser::basic_symbol< Base >::clear(), for_(), std::hash< std::tuple< Elements... > >::hash_(), vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::increment_(), vcsn::rat::info< ExpSet >::visit_tuple< bool, Dummy >::info_(), vcsn::detail::tupleset_impl< ValueSets >::lnormalize_here_(), vcsn::weightset_mixin< context< stateset_t, weightset_t >, Kind >::mul(), vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::next_(), vcsn::zip_sequences_padded< ZipSequences >::zip_iterator< ValueType, IteratorsType >::next_(), vcsn::detail::tupleset_impl< ValueSets >::open_(), vcsn::rat::dot_printer< ExpSet >::visit_tuple< bool, Dummy >::print_(), vcsn::detail::tupleset_impl< ValueSets >::print_(), vcsn::detail::tuple_automaton_impl< Aut, Auts >::print_set_(), vcsn::detail::tupleset_impl< ValueSets >::print_set_(), vcsn::raise(), vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::reset_up_to_(), vcsn::detail::wet_set< Key, Compare >::set(), vcsn::detail::wet_bitset::set(), vcsn::transition_tuple< State, Label, bool >::set_weight(), vcsn::rat::sizer< ExpSet >::visit_tuple< bool, Dummy >::size_(), vcsn::detail::tuple_automaton_impl< Aut, Auts >::sname_(), vcsn::rat::info< ExpSet >::VCSN_RAT_VISIT(), vcsn::detail::welement_weight< bool >::weight(), and vcsn::detail::welement_weight< bool >::welement_weight().

auto vcsn::detail::weight_tapes = weight_tapes_t{ctx.labelset()->template set<WeightTapes>()...}

Definition at line 149 of file lift.hh.