LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::ln::LnLayerBlocks Struct Reference

LayeredNetwork.layerBlocks: where each layer's block sits in the aggregate. More...

#include <line/solvers/ln/solver_ln.h>

Collaboration diagram for line::ln::LnLayerBlocks:

Public Attributes

std::vector< std::size_t > roff
std::vector< std::size_t > coff
std::vector< std::size_t > msz
std::vector< std::size_t > ksz
std::size_t M = 0
std::size_t K = 0

Detailed Description

LayeredNetwork.layerBlocks: where each layer's block sits in the aggregate.

An LQN has no stations and classes of its own – SolverLN builds them, one network per layer – so the flat (station, class) view a caller like SolverENV needs is the BLOCK-DIAGONAL UNION of the layer networks, in layer order. roff[e]/coff[e] are layer e's 0-based row/column offset in that union and msz[e]/ksz[e] its size; M/K are the totals.

The off-diagonal blocks pair a station of one layer with a class of another and stand for nothing at all. The reference leaves them as EMPTY cells; this port fills them with zeros, which is what the reference's consumers make of an empty cell (tranTimeBase_ returns nothing and the metric stays 0).

Definition at line 399 of file solver_ln.h.

Member Data Documentation

◆ coff

std::vector<std::size_t> line::ln::LnLayerBlocks::coff

◆ K

std::size_t line::ln::LnLayerBlocks::K = 0

◆ ksz

std::vector<std::size_t> line::ln::LnLayerBlocks::ksz

◆ M

std::size_t line::ln::LnLayerBlocks::M = 0

◆ msz

std::vector<std::size_t> line::ln::LnLayerBlocks::msz

◆ roff

std::vector<std::size_t> line::ln::LnLayerBlocks::roff

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