Awali
Another Weighted Automata library
Public Types | Public Member Functions | Static Public Attributes
awali::sttc::internal::product_algo_impl< Aut, Auts > Class Template Reference

Build the (accessible part of the) product. More...

#include <product.hh>

Public Types

using automata_t = std::tuple< Auts... >
 The type of input automata. More...
 
using context_t = context_t_of< Aut >
 The context of the result. More...
 
using indices_t = awali::internal::make_index_sequence< sizeof...(Auts)>
 The list of automaton indices as a static list. More...
 
template<size_t I>
using input_automaton_t = base_t< typename std::tuple_element< I, automata_t >::type >
 The type of the Ith input automaton, unqualified. More...
 
using label_t = typename labelset_t::value_t
 
using labelset_t = labelset_t_of< context_t >
 
template<std::size_t... I>
using seq = awali::internal::index_sequence< I... >
 
template<typename A >
using transition_map_t = transition_map< A, weightset_t, false, true >
 The type of our transition maps: convert the weight to weightset_t, non deterministic, and including transitions to post(). More...
 
using tuple_t = typename std::cst_tuple< state_t, std::tuple_size< std::tuple< Auts... > >::value >::type
 
using weight_t = typename weightset_t::value_t
 
using weightset_t = weightset_t_of< context_t >
 

Public Member Functions

 product_algo_impl (Aut aut, const Auts &... auts)
 
void infiltration ()
 Compute the (accessible part of the) infiltration product. More...
 
tuple_t post_ () const
 The name of the post of the output automaton. More...
 
template<size_t... I>
tuple_t post_ (seq< I... >) const
 
tuple_t pre_ () const
 The name of the pre of the output automaton. More...
 
template<size_t... I>
tuple_t pre_ (seq< I... >) const
 
void product ()
 Compute the (accessible part of the) product. More...
 
void set_history ()
 
void shuffle ()
 Compute the (accessible part of the) shuffle product. More...
 
state_t state (tuple_t state)
 The state in the product corresponding to a tuple of states of operands. More...
 

Static Public Attributes

static constexpr indices_t indices {}
 

Detailed Description

template<typename Aut, typename... Auts>
class awali::sttc::internal::product_algo_impl< Aut, Auts >

Build the (accessible part of the) product.

Member Typedef Documentation

◆ automata_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::automata_t = std::tuple<Auts...>

The type of input automata.

◆ context_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::context_t = context_t_of<Aut>

The context of the result.

◆ indices_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::indices_t = awali::internal::make_index_sequence<sizeof...(Auts)>

The list of automaton indices as a static list.

◆ input_automaton_t

template<typename Aut , typename... Auts>
template<size_t I>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::input_automaton_t = base_t<typename std::tuple_element<I, automata_t>::type>

The type of the Ith input automaton, unqualified.

◆ label_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::label_t = typename labelset_t::value_t

◆ labelset_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::labelset_t = labelset_t_of<context_t>

◆ seq

template<typename Aut , typename... Auts>
template<std::size_t... I>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::seq = awali::internal::index_sequence<I...>

◆ transition_map_t

template<typename Aut , typename... Auts>
template<typename A >
using awali::sttc::internal::product_algo_impl< Aut, Auts >::transition_map_t = transition_map<A, weightset_t, false, true>

The type of our transition maps: convert the weight to weightset_t, non deterministic, and including transitions to post().

◆ tuple_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::tuple_t = typename std::cst_tuple<state_t, std::tuple_size<std::tuple<Auts...> >::value>::type

◆ weight_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::weight_t = typename weightset_t::value_t

◆ weightset_t

template<typename Aut , typename... Auts>
using awali::sttc::internal::product_algo_impl< Aut, Auts >::weightset_t = weightset_t_of<context_t>

Constructor & Destructor Documentation

◆ product_algo_impl()

template<typename Aut , typename... Auts>
awali::sttc::internal::product_algo_impl< Aut, Auts >::product_algo_impl ( Aut  aut,
const Auts &...  auts 
)

Member Function Documentation

◆ infiltration()

template<typename Aut , typename... Auts>
void awali::sttc::internal::product_algo_impl< Aut, Auts >::infiltration ( )

Compute the (accessible part of the) infiltration product.

◆ post_() [1/2]

template<typename Aut , typename... Auts>
tuple_t awali::sttc::internal::product_algo_impl< Aut, Auts >::post_ ( ) const

The name of the post of the output automaton.

◆ post_() [2/2]

template<typename Aut , typename... Auts>
template<size_t... I>
tuple_t awali::sttc::internal::product_algo_impl< Aut, Auts >::post_ ( seq< I... >  ) const

◆ pre_() [1/2]

template<typename Aut , typename... Auts>
tuple_t awali::sttc::internal::product_algo_impl< Aut, Auts >::pre_ ( ) const

The name of the pre of the output automaton.

◆ pre_() [2/2]

template<typename Aut , typename... Auts>
template<size_t... I>
tuple_t awali::sttc::internal::product_algo_impl< Aut, Auts >::pre_ ( seq< I... >  ) const

◆ product()

template<typename Aut , typename... Auts>
void awali::sttc::internal::product_algo_impl< Aut, Auts >::product ( )

Compute the (accessible part of the) product.

◆ set_history()

template<typename Aut , typename... Auts>
void awali::sttc::internal::product_algo_impl< Aut, Auts >::set_history ( )

◆ shuffle()

template<typename Aut , typename... Auts>
void awali::sttc::internal::product_algo_impl< Aut, Auts >::shuffle ( )

Compute the (accessible part of the) shuffle product.

◆ state()

template<typename Aut , typename... Auts>
state_t awali::sttc::internal::product_algo_impl< Aut, Auts >::state ( tuple_t  state)

The state in the product corresponding to a tuple of states of operands.

Add the given two source-automaton states to the worklist for the given result automaton if they aren't already there, updating the map; in any case return.

Field Documentation

◆ indices

template<typename Aut , typename... Auts>
constexpr indices_t awali::sttc::internal::product_algo_impl< Aut, Auts >::indices {}
staticconstexpr

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