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

The LD-QBD blocks and parameters, the reference's optional eighth output. More...

#include <line/solvers/mam/solver_mam_ldqbd.h>

Collaboration diagram for line::mam::LdqbdBlocks< T >:

Public Attributes

std::vector< Matrix< T > > Q0
std::vector< Matrix< T > > Q1
std::vector< Matrix< T > > Q2
std::size_t Nlev = 0
std::size_t nPhases = 1
bool isPH = false
bool isOpen = false
std::size_t queueIdx = 0
std::size_t refIdx = 0
std::size_t M = 0
double nServers = 1.0
mean_service = num_traits<T>::from_int(0)
bool hasLLD = false
std::vector< T > sf
 Per-level service factor sf(n), with sf[0] unused so it lines up by level.
double utilPeak = 1.0
 The capacity that normalizes the utilization: max(c, max(alpha)), the LARGEST factor the load-dependence table declares rather than the saturated one, since a non-monotone alpha peaks in the middle.
lambda_eff = num_traits<T>::from_int(0)
delayRate = num_traits<T>::from_int(0)
double N = 0.0
bool hasSetup = false
 The station alternates OFF -> setup -> busy -> delay-off around the service, so the chain carries phases the block builder has no place for.
alpharate = num_traits<T>::from_int(0)
alphascv = num_traits<T>::from_int(1)
betarate = num_traits<T>::from_int(0)
betascv = num_traits<T>::from_int(1)

Detailed Description

template<class T>
struct line::mam::LdqbdBlocks< T >

The LD-QBD blocks and parameters, the reference's optional eighth output.

Built unconditionally here rather than behind a nargout test: C++ has no such thing, the cost is a few pointers, and the SolverENV state-vector analyzer is the consumer the reference built it for.

Definition at line 70 of file solver_mam_ldqbd.h.

Member Data Documentation

◆ alpharate

template<class T>
T line::mam::LdqbdBlocks< T >::alpharate = num_traits<T>::from_int(0)

Definition at line 100 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ alphascv

template<class T>
T line::mam::LdqbdBlocks< T >::alphascv = num_traits<T>::from_int(1)

Definition at line 100 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ betarate

template<class T>
T line::mam::LdqbdBlocks< T >::betarate = num_traits<T>::from_int(0)

Definition at line 101 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ betascv

template<class T>
T line::mam::LdqbdBlocks< T >::betascv = num_traits<T>::from_int(1)

Definition at line 101 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ delayRate

template<class T>
T line::mam::LdqbdBlocks< T >::delayRate = num_traits<T>::from_int(0)

◆ hasLLD

template<class T>
bool line::mam::LdqbdBlocks< T >::hasLLD = false

Definition at line 79 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ hasSetup

template<class T>
bool line::mam::LdqbdBlocks< T >::hasSetup = false

The station alternates OFF -> setup -> busy -> delay-off around the service, so the chain carries phases the block builder has no place for.

When this is set the blocks above describe a server that is ALWAYS warm and must not be used: the closed regime hands the whole chain to qbd_setupdelayoff_closed instead.

Definition at line 99 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ isOpen

template<class T>
bool line::mam::LdqbdBlocks< T >::isOpen = false

◆ isPH

template<class T>
bool line::mam::LdqbdBlocks< T >::isPH = false

Definition at line 74 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ lambda_eff

template<class T>
T line::mam::LdqbdBlocks< T >::lambda_eff = num_traits<T>::from_int(0)

◆ M

template<class T>
std::size_t line::mam::LdqbdBlocks< T >::M = 0

◆ mean_service

template<class T>
T line::mam::LdqbdBlocks< T >::mean_service = num_traits<T>::from_int(0)

Definition at line 78 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ N

template<class T>
double line::mam::LdqbdBlocks< T >::N = 0.0

◆ Nlev

template<class T>
std::size_t line::mam::LdqbdBlocks< T >::Nlev = 0

◆ nPhases

template<class T>
std::size_t line::mam::LdqbdBlocks< T >::nPhases = 1

Definition at line 73 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ nServers

template<class T>
double line::mam::LdqbdBlocks< T >::nServers = 1.0

Definition at line 77 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd().

◆ Q0

template<class T>
std::vector<Matrix<T> > line::mam::LdqbdBlocks< T >::Q0

◆ Q1

template<class T>
std::vector<Matrix<T> > line::mam::LdqbdBlocks< T >::Q1

◆ Q2

template<class T>
std::vector<Matrix<T> > line::mam::LdqbdBlocks< T >::Q2

◆ queueIdx

template<class T>
std::size_t line::mam::LdqbdBlocks< T >::queueIdx = 0

◆ refIdx

template<class T>
std::size_t line::mam::LdqbdBlocks< T >::refIdx = 0

◆ sf

template<class T>
std::vector<T> line::mam::LdqbdBlocks< T >::sf

Per-level service factor sf(n), with sf[0] unused so it lines up by level.

Definition at line 81 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd(), and line::mam::solver_mam_ldqbd_avg().

◆ utilPeak

template<class T>
double line::mam::LdqbdBlocks< T >::utilPeak = 1.0

The capacity that normalizes the utilization: max(c, max(alpha)), the LARGEST factor the load-dependence table declares rather than the saturated one, since a non-monotone alpha peaks in the middle.

Same rule as CTMC's ceff, which is what makes the two report the same number.

Definition at line 88 of file solver_mam_ldqbd.h.

Referenced by line::mam::solver_mam_ldqbd(), and line::mam::solver_mam_ldqbd_avg().


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