Awali
Another Weighted Automata library
Public Types | Public Member Functions | Static Public Member Functions
awali::sttc::rat::split_visitor< RatExpSet > Class Template Reference

#include <split.hh>

Inheritance diagram for awali::sttc::rat::split_visitor< RatExpSet >:

Public Types

using context_t = context_t_of< ratexpset_t >
 
using label_t = label_t_of< context_t >
 
using labelset_t = labelset_t_of< context_t >
 
using polynomial_t = typename polynomialset_t::value_t
 
using polynomialset_t = ratexp_polynomialset_t< ratexpset_t >
 
using ratexp_t = typename ratexpset_t::value_t
 
using ratexpset_t = RatExpSet
 
using super_type = typename ratexpset_t::const_visitor
 
using weight_t = typename weightset_t::value_t
 
using weightset_t = weightset_t_of< ratexpset_t >
 

Public Member Functions

 split_visitor (const ratexpset_t &rs)
 
 AWALI_RAT_VISIT (atom, e)
 
 AWALI_RAT_VISIT (conjunction, e)
 Handle an n-ary conjunction. More...
 
 AWALI_RAT_VISIT (lweight, e)
 
 AWALI_RAT_VISIT (one,)
 
 AWALI_RAT_VISIT (prod, e)
 Handle an n-ary product. More...
 
 AWALI_RAT_VISIT (rweight, e)
 
 AWALI_RAT_VISIT (star, e)
 
 AWALI_RAT_VISIT (sum, e)
 
 AWALI_RAT_VISIT (zero,)
 
polynomial_t conjunction (const polynomial_t &l, const ratexp_t &r)
 The split-product of l with r. More...
 
polynomial_t conjunction (const ratexp_t &l, const ratexp_t &r)
 The split-product of l with r. More...
 
polynomial_t operator() (const ratexp_t &v)
 Break a ratexp into a polynomial. More...
 
polynomial_t product (const polynomial_t &l, const ratexp_t &r)
 The split-product of l with r. More...
 
polynomial_t product (const ratexp_t &l, const ratexp_t &r)
 The split-product of l with r. More...
 
polynomial_t split (const ratexp_t &v)
 Easy recursion. More...
 

Static Public Member Functions

constexpr static const char * me ()
 

Member Typedef Documentation

◆ context_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::context_t = context_t_of<ratexpset_t>

◆ label_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::label_t = label_t_of<context_t>

◆ labelset_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::labelset_t = labelset_t_of<context_t>

◆ polynomial_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::polynomial_t = typename polynomialset_t::value_t

◆ polynomialset_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::polynomialset_t = ratexp_polynomialset_t<ratexpset_t>

◆ ratexp_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::ratexp_t = typename ratexpset_t::value_t

◆ ratexpset_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::ratexpset_t = RatExpSet

◆ super_type

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::super_type = typename ratexpset_t::const_visitor

◆ weight_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::weight_t = typename weightset_t::value_t

◆ weightset_t

template<typename RatExpSet >
using awali::sttc::rat::split_visitor< RatExpSet >::weightset_t = weightset_t_of<ratexpset_t>

Constructor & Destructor Documentation

◆ split_visitor()

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::split_visitor ( const ratexpset_t rs)

Member Function Documentation

◆ AWALI_RAT_VISIT() [1/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( atom  ,
 
)

◆ AWALI_RAT_VISIT() [2/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( conjunction  ,
 
)

Handle an n-ary conjunction.

◆ AWALI_RAT_VISIT() [3/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( lweight  ,
 
)

◆ AWALI_RAT_VISIT() [4/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( one  )

◆ AWALI_RAT_VISIT() [5/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( prod  ,
 
)

Handle an n-ary product.

◆ AWALI_RAT_VISIT() [6/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( rweight  ,
 
)

◆ AWALI_RAT_VISIT() [7/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( star  ,
 
)

◆ AWALI_RAT_VISIT() [8/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( sum  ,
 
)

◆ AWALI_RAT_VISIT() [9/9]

template<typename RatExpSet >
awali::sttc::rat::split_visitor< RatExpSet >::AWALI_RAT_VISIT ( zero  )

◆ conjunction() [1/2]

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::conjunction ( const polynomial_t l,
const ratexp_t r 
)

The split-product of l with r.

Returns l x split(r).

◆ conjunction() [2/2]

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::conjunction ( const ratexp_t l,
const ratexp_t r 
)

The split-product of l with r.

Returns split(l) x split(r). FIXME: This is inefficient, we split the lhs way too often.

◆ me()

template<typename RatExpSet >
constexpr static const char* awali::sttc::rat::split_visitor< RatExpSet >::me ( )
staticconstexpr

◆ operator()()

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::operator() ( const ratexp_t v)

Break a ratexp into a polynomial.

◆ product() [1/2]

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::product ( const polynomial_t l,
const ratexp_t r 
)

The split-product of l with r.

Returns l x split(r).

◆ product() [2/2]

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::product ( const ratexp_t l,
const ratexp_t r 
)

The split-product of l with r.

Returns split(l) x split(r). FIXME: This is inefficient, we split the lhs way too often.

◆ split()

template<typename RatExpSet >
polynomial_t awali::sttc::rat::split_visitor< RatExpSet >::split ( const ratexp_t v)

Easy recursion.


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