Vcsn  2.8
Be Rational
vcsn::detail::random_weight_base< WeightSet, RandomGenerator > Class Template Referenceabstract

Abstract class for random weight generation. More...

#include <weightset.hh>

Inheritance diagram for vcsn::detail::random_weight_base< WeightSet, RandomGenerator >:
Collaboration diagram for vcsn::detail::random_weight_base< WeightSet, RandomGenerator >:

Public Types

using weightset_t = WeightSet
 
using weight_t = typename weightset_t::value_t
 
using random_generator_t = RandomGenerator
 

Public Member Functions

 random_weight_base (random_generator_t &gen, const weightset_t &ws)
 
void parse_param (const std::string &param)
 
weight_t generate_random_weight () const
 

Protected Types

using weight_map_t = std::map< weight_t, float, vcsn::less< weightset_t > >
 Elements given by the user and their associated probabilities (weight_weight_). More...
 
using weight_weight_t = std::vector< float >
 

Protected Member Functions

virtual void parse_param_ (const std::string &weights)
 
virtual weight_t pick_value_ () const =0
 
weight_t print_random_weight_ () const
 A random weight. More...
 

Protected Attributes

random_generator_tgen_
 
weightset_t ws_
 
weight_t min_
 The min and the max given by the user. More...
 
weight_t max_
 
weight_map_t weight_
 
weight_weight_t weight_weight_
 
discrete_chooser< random_generator_tchooser_it_ {gen_}
 

Detailed Description

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
class vcsn::detail::random_weight_base< WeightSet, RandomGenerator >

Abstract class for random weight generation.

It contains the parsing of the arguments (which can be overridden), the map of probabilities, the min and the max.

Definition at line 118 of file weightset.hh.

Member Typedef Documentation

◆ random_generator_t

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
using vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::random_generator_t = RandomGenerator

Definition at line 123 of file weightset.hh.

◆ weight_map_t

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
using vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weight_map_t = std::map<weight_t, float, vcsn::less<weightset_t> >
protected

Elements given by the user and their associated probabilities (weight_weight_).

Definition at line 198 of file weightset.hh.

◆ weight_t

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
using vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weight_t = typename weightset_t::value_t

Definition at line 122 of file weightset.hh.

◆ weight_weight_t

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
using vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weight_weight_t = std::vector<float>
protected

Definition at line 200 of file weightset.hh.

◆ weightset_t

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
using vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weightset_t = WeightSet

Definition at line 121 of file weightset.hh.

Constructor & Destructor Documentation

◆ random_weight_base()

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::random_weight_base ( random_generator_t gen,
const weightset_t ws 
)
inline

Definition at line 125 of file weightset.hh.

Member Function Documentation

◆ generate_random_weight()

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::generate_random_weight ( ) const
inline

Definition at line 138 of file weightset.hh.

◆ parse_param()

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
void vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::parse_param ( const std::string &  param)
inline

Definition at line 132 of file weightset.hh.

◆ parse_param_()

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
virtual void vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::parse_param_ ( const std::string &  weights)
inlineprotectedvirtual

Definition at line 144 of file weightset.hh.

◆ pick_value_()

◆ print_random_weight_()

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::print_random_weight_ ( ) const
inlineprotected

A random weight.

There is a biased probability to choose a value specified on the parameters.

Otherwise, choose a random value from the WeightSet.

Definition at line 174 of file weightset.hh.

Member Data Documentation

◆ chooser_it_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
discrete_chooser<random_generator_t> vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::chooser_it_ {gen_}
protected

Definition at line 202 of file weightset.hh.

◆ gen_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
random_generator_t& vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::gen_
protected

Definition at line 190 of file weightset.hh.

◆ max_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::max_
protected

Definition at line 195 of file weightset.hh.

◆ min_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::min_
protected

The min and the max given by the user.

If unspecified, then it takes the min and max of the weighset by default.

Definition at line 194 of file weightset.hh.

◆ weight_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_map_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weight_
protected

Definition at line 199 of file weightset.hh.

◆ weight_weight_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weight_weight_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::weight_weight_
protected

Definition at line 201 of file weightset.hh.

◆ ws_

template<typename WeightSet, typename RandomGenerator = std::default_random_engine>
weightset_t vcsn::detail::random_weight_base< WeightSet, RandomGenerator >::ws_
protected

Definition at line 191 of file weightset.hh.


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