Vcsn  2.4
Be Rational
vcsn::detail::evaluator< Aut > Class Template Reference

Evaluate a word on an automaton. More...

#include <evaluate.hh>

Collaboration diagram for vcsn::detail::evaluator< Aut >:

Classes

struct  labeled_weight
 

Public Member Functions

 evaluator (const automaton_t &a)
 
template<typename LabelSet = labelset_t>
std::enable_if_t<!LabelSet::is_free(), weight_toperator() (const word_t &word) const
 
template<typename LabelSet = labelset_t>
std::enable_if_t< LabelSet::is_free(), weight_toperator() (const word_t &word) const
 
weight_t operator() (const polynomial_t &poly) const
 Polynomial implementation. More...
 

Private Types

using automaton_t = Aut
 
using labelset_t = labelset_t_of< automaton_t >
 
using state_t = state_t_of< automaton_t >
 
using word_t = word_t_of< automaton_t >
 
using wordset_t = law_t< labelset_t >
 
using context_t = context_t_of< automaton_t >
 
using wps_t = word_polynomialset_t< context_t >
 
using polynomial_t = typename wps_t::value_t
 
using weightset_t = weightset_t_of< automaton_t >
 
using weight_t = typename weightset_t::value_t
 
using weights_t = std::vector< weight_t >
 state -> weight. More...
 

Private Attributes

automaton_t aut_
 
const weightset_tws_ = *aut_->weightset()
 
const labelset_tls_ = *aut_->labelset()
 
const wordset_t wordset_ = make_wordset(*aut_->labelset())
 
const wps_t wps_ = make_word_polynomialset(aut_->context())
 

Detailed Description

template<Automaton Aut>
class vcsn::detail::evaluator< Aut >

Evaluate a word on an automaton.

Definition at line 23 of file evaluate.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::automaton_t = Aut
private

Definition at line 25 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::context_t = context_t_of<automaton_t>
private

Definition at line 30 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::labelset_t = labelset_t_of<automaton_t>
private

Definition at line 26 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::polynomial_t = typename wps_t::value_t
private

Definition at line 32 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::state_t = state_t_of<automaton_t>
private

Definition at line 27 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::weight_t = typename weightset_t::value_t
private

Definition at line 34 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::weights_t = std::vector<weight_t>
private

state -> weight.

Definition at line 37 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::weightset_t = weightset_t_of<automaton_t>
private

Definition at line 33 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::word_t = word_t_of<automaton_t>
private

Definition at line 28 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::wordset_t = law_t<labelset_t>
private

Definition at line 29 of file evaluate.hh.

template<Automaton Aut>
using vcsn::detail::evaluator< Aut >::wps_t = word_polynomialset_t<context_t>
private

Definition at line 31 of file evaluate.hh.

Constructor & Destructor Documentation

template<Automaton Aut>
vcsn::detail::evaluator< Aut >::evaluator ( const automaton_t a)
inline

Definition at line 40 of file evaluate.hh.

Member Function Documentation

template<Automaton Aut>
template<typename LabelSet = labelset_t>
std::enable_if_t<!LabelSet::is_free(), weight_t> vcsn::detail::evaluator< Aut >::operator() ( const word_t word) const
inline

Definition at line 60 of file evaluate.hh.

References vcsn::detail::all_out(), vcsn::detail::evaluator< Aut >::aut_, vcsn::detail::evaluator< Aut >::ls_, vcsn::res, vcsn::detail::evaluator< Aut >::wordset_, and vcsn::detail::evaluator< Aut >::ws_.

Here is the call graph for this function:

template<Automaton Aut>
template<typename LabelSet = labelset_t>
std::enable_if_t<LabelSet::is_free(), weight_t> vcsn::detail::evaluator< Aut >::operator() ( const word_t word) const
inline

Definition at line 95 of file evaluate.hh.

References vcsn::detail::evaluator< Aut >::aut_, vcsn::detail::out(), vcsn::detail::states_size(), and vcsn::detail::evaluator< Aut >::ws_.

Here is the call graph for this function:

template<Automaton Aut>
weight_t vcsn::detail::evaluator< Aut >::operator() ( const polynomial_t poly) const
inline

Polynomial implementation.

Definition at line 150 of file evaluate.hh.

References vcsn::label_of(), vcsn::res, vcsn::weight_of(), and vcsn::detail::evaluator< Aut >::ws_.

Here is the call graph for this function:

Member Data Documentation

template<Automaton Aut>
automaton_t vcsn::detail::evaluator< Aut >::aut_
private

Definition at line 160 of file evaluate.hh.

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

template<Automaton Aut>
const labelset_t& vcsn::detail::evaluator< Aut >::ls_ = *aut_->labelset()
private

Definition at line 162 of file evaluate.hh.

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

template<Automaton Aut>
const wordset_t vcsn::detail::evaluator< Aut >::wordset_ = make_wordset(*aut_->labelset())
private

Definition at line 163 of file evaluate.hh.

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

template<Automaton Aut>
const wps_t vcsn::detail::evaluator< Aut >::wps_ = make_word_polynomialset(aut_->context())
private

Definition at line 164 of file evaluate.hh.

template<Automaton Aut>
const weightset_t& vcsn::detail::evaluator< Aut >::ws_ = *aut_->weightset()
private

Definition at line 161 of file evaluate.hh.

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


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