C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
shuffle< T > Struct Template Referencefinal
Inheritance diagram for shuffle< T >:
[legend]
Collaboration diagram for shuffle< T >:
[legend]

Public Types

typedef exprtk::igeneric_function< T > igfun_t
 
typedef igfun_t::parameter_list_t parameter_list_t
 
typedef igfun_t::generic_type generic_type
 
typedef generic_type::vector_view vector_t
 
- Public Types inherited from exprtk::igeneric_function< T >
enum  return_type { e_rtrn_scalar = 0 , e_rtrn_string = 1 , e_rtrn_overload = 2 }
 
typedef T type
 
typedef type_store< T > generic_type
 
typedef generic_type::parameter_list parameter_list_t
 

Public Member Functions

 shuffle ()
 
operator() (parameter_list_t parameters) override
 
- Public Member Functions inherited from exprtk::igeneric_function< T >
 igeneric_function (const std::string &param_seq="", const return_type rtr_type=e_rtrn_scalar)
 
virtual ~igeneric_function ()
 
virtual T operator() (std::string &, parameter_list_t)
 
virtual T operator() (const std::size_t &, parameter_list_t)
 
virtual T operator() (const std::size_t &, std::string &, parameter_list_t)
 
- Public Member Functions inherited from exprtk::function_traits
 function_traits ()
 
bool & allow_zero_parameters ()
 
bool & has_side_effects ()
 
std::size_t & min_num_args ()
 
std::size_t & max_num_args ()
 

Public Attributes

std::mt19937 generator
 
std::uniform_real_distribution< T > distribution {T(0),T(1)}
 
- Public Attributes inherited from exprtk::igeneric_function< T >
std::string parameter_sequence
 
return_type rtrn_type
 

Detailed Description

template<typename T>
struct shuffle< T >

Definition at line 30 of file exprtk_maze_generator.cpp.

Member Typedef Documentation

◆ generic_type

template<typename T >
typedef igfun_t::generic_type shuffle< T >::generic_type

Definition at line 34 of file exprtk_maze_generator.cpp.

◆ igfun_t

template<typename T >
typedef exprtk::igeneric_function<T> shuffle< T >::igfun_t

Definition at line 32 of file exprtk_maze_generator.cpp.

◆ parameter_list_t

template<typename T >
typedef igfun_t::parameter_list_t shuffle< T >::parameter_list_t

Definition at line 33 of file exprtk_maze_generator.cpp.

◆ vector_t

template<typename T >
typedef generic_type::vector_view shuffle< T >::vector_t

Definition at line 35 of file exprtk_maze_generator.cpp.

Constructor & Destructor Documentation

◆ shuffle()

template<typename T >
shuffle< T >::shuffle ( )
inline

Definition at line 39 of file exprtk_maze_generator.cpp.

41 {
42 std::random_device device;
43 std::array<unsigned int,std::mt19937::state_size> seed;
44 std::generate_n(seed.data(), seed.size(), std::ref(device));
45 std::seed_seq seq(std::begin(seed), std::end(seed));
46 generator.seed(seq);
47 }
std::mt19937 generator

References shuffle< T >::generator.

Member Function Documentation

◆ operator()()

template<typename T >
T shuffle< T >::operator() ( parameter_list_t  parameters)
inlineoverridevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 49 of file exprtk_maze_generator.cpp.

50 {
51 vector_t vec(parameters[0]);
52 std::shuffle(std::begin(vec), std::end(vec), generator);
53 return T(1);
54 }
generic_type::vector_view vector_t

References shuffle< T >::generator.

Member Data Documentation

◆ distribution

template<typename T >
std::uniform_real_distribution<T> shuffle< T >::distribution {T(0),T(1)}

Definition at line 57 of file exprtk_maze_generator.cpp.

57{T(0),T(1)};

◆ generator

template<typename T >
std::mt19937 shuffle< T >::generator

Definition at line 56 of file exprtk_maze_generator.cpp.

Referenced by shuffle< T >::operator()(), and shuffle< T >::shuffle().


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