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

The [Q,U,R,T,C,X,lG] of the reference, plus the algorithm that ran. More...

#include <line/solvers/nc/nc_types.h>

Collaboration diagram for line::nc::NcSolution< T >:

Public Attributes

mva::MvaSolution< T > sol
std::string actualmethod
Matrix< T > STeff
 the service times of the last pass, MATLAB's STeff
std::shared_ptr< qn::NetworkStruct< T > > refreshed_struct
 Set only by the integrated cacheqn branch: the converged struct whose routing carries the ACTUAL hit/miss probabilities, from which the runner derives ArvR and ResidT.
std::string warning
 The reference's warning text, verbatim, empty when it did not warn.
std::vector< T > listcost
 (h) mean storage cost held by each cache list, K_j = sum_i sigma_i pi_ij.
solvers::CacheMetrics< T > cache
 What the cache branches observed, EMPTY on a model with no Cache node.

Detailed Description

template<class T>
struct line::nc::NcSolution< T >

The [Q,U,R,T,C,X,lG] of the reference, plus the algorithm that ran.

Definition at line 113 of file nc_types.h.

Member Data Documentation

◆ actualmethod

◆ cache

template<class T>
solvers::CacheMetrics<T> line::nc::NcSolution< T >::cache

What the cache branches observed, EMPTY on a model with no Cache node.

It rides here rather than being recomputed by the caller because the analyzers already have it and throwing it away would mean solving the cache twice to answer getAvgCacheTable – and the second solve, being a different call, would be free to disagree with the first.

Definition at line 148 of file nc_types.h.

Referenced by line::nc::solver_nc_run_analyzer(), and line::nc::solver_nc_solve().

◆ listcost

template<class T>
std::vector<T> line::nc::NcSolution< T >::listcost

(h) mean storage cost held by each cache list, K_j = sum_i sigma_i pi_ij.

EMPTY for every model without item sizes, which is every model but a cache carrying sn.nodeparam.itemsize (ton21cache Sec. IX).

Definition at line 139 of file nc_types.h.

Referenced by line::nc::solver_nc_run_analyzer().

◆ refreshed_struct

template<class T>
std::shared_ptr<qn::NetworkStruct<T> > line::nc::NcSolution< T >::refreshed_struct

Set only by the integrated cacheqn branch: the converged struct whose routing carries the ACTUAL hit/miss probabilities, from which the runner derives ArvR and ResidT.

Empty for every other model. Same role as mva::DispatchResult::refreshed_struct.

Definition at line 123 of file nc_types.h.

Referenced by line::nc::solver_nc_run_analyzer(), and line::nc::solver_nc_solve().

◆ sol

◆ STeff

template<class T>
Matrix<T> line::nc::NcSolution< T >::STeff

the service times of the last pass, MATLAB's STeff

Definition at line 116 of file nc_types.h.

Referenced by line::nc::solver_nc(), line::nc::solver_nc_jointaggr(), line::nc::solver_nc_sdr(), and line::nc::solver_ncld().

◆ warning

template<class T>
std::string line::nc::NcSolution< T >::warning

The reference's warning text, verbatim, empty when it did not warn.

Same role as mva::AvgResult::warning, which solver_nc_run_analyzer copies it into: a statement about HOW the numbers were produced. The cache branch uses it for the two cost-cap conditions – a promotion path the caps block, and a method that has no cost-capped counterpart and was switched – because the port has no line_warning channel and a FLAG no caller reads is the same as saying nothing.

Definition at line 133 of file nc_types.h.

Referenced by line::nc::solver_nc_run_analyzer(), and line::nc::solver_nc_solve().


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