LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::gen::LayeredNetworkGenerator< T > Class Template Reference

A random lqn::LqnBuilder<T> source, configured once and then drawn from. More...

#include <line/gen/layered_network_generator.h>

Public Member Functions

 LayeredNetworkGenerator ()
 LayeredNetworkGenerator (long long seed)
void set_seed (long long seed)
 Reseed the single stream every draw comes from.
void set_model_name (const std::string &nm)
 The name of the generated model.
const std::string & model_name () const
void set_population_range (const Range &r)
 Reference-task populations.
void set_think_time_range (const Range &r)
 Client think times.
void set_task_inf_probability (double p)
 Probability that a server task is infinite-server rather than FCFS.
void set_proc_inf_probability (double p)
 Probability that a processor is infinite-server rather than PS.
void set_task_multi_range (const Range &r)
 Task multiplicities, for the tasks that are not infinite-server.
void set_proc_multi_range (const Range &r)
 Processor multiplicities, for the processors that are not infinite-server.
void set_host_demand_range (const Range &r)
 Activity host demands.
void set_synch_call_range (const Range &r)
 Mean number of synchronous calls on a call arc.
const Range & population_range () const
const Range & think_time_range () const
double task_inf_probability () const
double proc_inf_probability () const
const Range & task_multi_range () const
const Range & proc_multi_range () const
const Range & host_demand_range () const
const Range & synch_call_range () const
const std::vector< int > & tasks_per_level () const
 How many tasks landed on each level, after the last generate.
const std::vector< int > & tasks_per_processor () const
 How many tasks landed on each processor, after the last generate.
lqn::LqnBuilder< T > generate (int num_clients, int num_levels, int num_tasks, int num_processors)

Detailed Description

template<class T>
class line::gen::LayeredNetworkGenerator< T >

A random lqn::LqnBuilder<T> source, configured once and then drawn from.

generate returns the BUILDER rather than the finalised struct: a caller that wants the model SolverLN consumes calls build() on it, and one that wants the .lqnx document calls lqn::write_lqnx(g.model(), ...) or lqn::lqnx_to_string(g.model(), ...). Handing back the struct alone would lose the raw model the writer needs.

Definition at line 77 of file layered_network_generator.h.

Constructor & Destructor Documentation

◆ LayeredNetworkGenerator() [1/2]

template<class T>
line::gen::LayeredNetworkGenerator< T >::LayeredNetworkGenerator ( )
inline

Definition at line 79 of file layered_network_generator.h.

◆ LayeredNetworkGenerator() [2/2]

template<class T>
line::gen::LayeredNetworkGenerator< T >::LayeredNetworkGenerator ( long long seed)
inlineexplicit

Definition at line 80 of file layered_network_generator.h.

Member Function Documentation

◆ generate()

◆ host_demand_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::host_demand_range ( ) const
inline

Definition at line 128 of file layered_network_generator.h.

◆ model_name()

template<class T>
const std::string & line::gen::LayeredNetworkGenerator< T >::model_name ( ) const
inline

Definition at line 87 of file layered_network_generator.h.

Referenced by run_generate().

◆ population_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::population_range ( ) const
inline

Definition at line 122 of file layered_network_generator.h.

◆ proc_inf_probability()

template<class T>
double line::gen::LayeredNetworkGenerator< T >::proc_inf_probability ( ) const
inline

Definition at line 125 of file layered_network_generator.h.

◆ proc_multi_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::proc_multi_range ( ) const
inline

Definition at line 127 of file layered_network_generator.h.

◆ set_host_demand_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_host_demand_range ( const Range & r)
inline

Activity host demands.

Zero is allowed and means an Immediate activity.

Definition at line 114 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_model_name()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_model_name ( const std::string & nm)
inline

The name of the generated model.

lnw is the reference's.

Definition at line 86 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_population_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_population_range ( const Range & r)
inline

Reference-task populations.

Strictly positive: a client with no job runs nothing.

Definition at line 90 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_proc_inf_probability()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_proc_inf_probability ( double p)
inline

Probability that a processor is infinite-server rather than PS.

Definition at line 102 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_proc_multi_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_proc_multi_range ( const Range & r)
inline

Processor multiplicities, for the processors that are not infinite-server.

Definition at line 110 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_seed()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_seed ( long long seed)
inline

Reseed the single stream every draw comes from.

Definition at line 83 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_synch_call_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_synch_call_range ( const Range & r)
inline

Mean number of synchronous calls on a call arc.

Strictly positive.

Definition at line 118 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_task_inf_probability()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_task_inf_probability ( double p)
inline

Probability that a server task is infinite-server rather than FCFS.

Definition at line 98 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_task_multi_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_task_multi_range ( const Range & r)
inline

Task multiplicities, for the tasks that are not infinite-server.

Definition at line 106 of file layered_network_generator.h.

Referenced by run_generate().

◆ set_think_time_range()

template<class T>
void line::gen::LayeredNetworkGenerator< T >::set_think_time_range ( const Range & r)
inline

Client think times.

Zero is allowed and means an Immediate think.

Definition at line 94 of file layered_network_generator.h.

Referenced by run_generate().

◆ synch_call_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::synch_call_range ( ) const
inline

Definition at line 129 of file layered_network_generator.h.

◆ task_inf_probability()

template<class T>
double line::gen::LayeredNetworkGenerator< T >::task_inf_probability ( ) const
inline

Definition at line 124 of file layered_network_generator.h.

◆ task_multi_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::task_multi_range ( ) const
inline

Definition at line 126 of file layered_network_generator.h.

◆ tasks_per_level()

template<class T>
const std::vector< int > & line::gen::LayeredNetworkGenerator< T >::tasks_per_level ( ) const
inline

How many tasks landed on each level, after the last generate.

Definition at line 132 of file layered_network_generator.h.

◆ tasks_per_processor()

template<class T>
const std::vector< int > & line::gen::LayeredNetworkGenerator< T >::tasks_per_processor ( ) const
inline

How many tasks landed on each processor, after the last generate.

Definition at line 134 of file layered_network_generator.h.

◆ think_time_range()

template<class T>
const Range & line::gen::LayeredNetworkGenerator< T >::think_time_range ( ) const
inline

Definition at line 123 of file layered_network_generator.h.


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