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

Result of pfqn_manjunath. More...

#include <line/api/pfqn/pfqn_manjunath.h>

Collaboration diagram for line::pfqn::PfqnManjunathResult< T >:

Public Attributes

G
 normalizing constant in the requested arithmetic
double lG = 0.0
 log of the constant, always a double
std::size_t peak_states = 0
 peak live series coefficients, the realised cost
bool has_stats = false
 whether the decomposition below was computed
std::vector< double > Q
 mean class r jobs at the queueing station
std::vector< double > X
 class r cycle throughput
std::vector< double > U
 class r utilization of the queueing station
std::vector< double > think
 class r jobs genuinely thinking, X_r * Z_r
std::vector< double > blocked
 class r jobs held at the delay by the constraint
std::vector< double > delay
 class r jobs at the delay, think + blocked

Detailed Description

template<class T>
struct line::pfqn::PfqnManjunathResult< T >

Result of pfqn_manjunath.

The decomposition fields are populated only when PfqnManjunathOptions::stats is set. They are double in every arithmetic, exactly as lG is, because each is a RATIO of normalizing constants taken in the log domain – which is what keeps the four codebases comparable digit for digit and what removes the range problem from a ratio of two very large constants. G itself stays exact under Arith::Exact.

Q + think + blocked == N exactly: a refused admission is a DELETED transition, so a blocked job never leaves the delay, and because the think time is exponential a held job is indistinguishable from one still thinking. Little's law is what separates the two.

Definition at line 130 of file pfqn_manjunath.h.

Member Data Documentation

◆ blocked

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::blocked

class r jobs held at the delay by the constraint

Definition at line 139 of file pfqn_manjunath.h.

◆ delay

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::delay

class r jobs at the delay, think + blocked

Definition at line 140 of file pfqn_manjunath.h.

◆ G

template<class T>
T line::pfqn::PfqnManjunathResult< T >::G

normalizing constant in the requested arithmetic

Definition at line 131 of file pfqn_manjunath.h.

◆ has_stats

template<class T>
bool line::pfqn::PfqnManjunathResult< T >::has_stats = false

whether the decomposition below was computed

Definition at line 134 of file pfqn_manjunath.h.

◆ lG

template<class T>
double line::pfqn::PfqnManjunathResult< T >::lG = 0.0

log of the constant, always a double

Definition at line 132 of file pfqn_manjunath.h.

◆ peak_states

template<class T>
std::size_t line::pfqn::PfqnManjunathResult< T >::peak_states = 0

peak live series coefficients, the realised cost

Definition at line 133 of file pfqn_manjunath.h.

◆ Q

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::Q

mean class r jobs at the queueing station

Definition at line 135 of file pfqn_manjunath.h.

◆ think

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::think

class r jobs genuinely thinking, X_r * Z_r

Definition at line 138 of file pfqn_manjunath.h.

◆ U

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::U

class r utilization of the queueing station

Definition at line 137 of file pfqn_manjunath.h.

◆ X

template<class T>
std::vector<double> line::pfqn::PfqnManjunathResult< T >::X

class r cycle throughput

Definition at line 136 of file pfqn_manjunath.h.


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