![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
The running per-(station, class) integrals and tallies. More...
#include <line/solvers/ldes/ldes_stats.h>
Public Member Functions | |
| Accum (std::size_t M, std::size_t K) | |
| void | update_qlen (std::size_t i, std::size_t r, double now) |
| Advance the queue-length integral of (i,r) to now. | |
| void | update_busy (std::size_t i, std::size_t r, double now) |
| Advance the busy-server integral of (i,r) to now. | |
| void | set_busy_scale (std::size_t i, double v, double now) |
| Install the load-dependent speed station i runs at from now on. | |
Public Attributes | |
| std::vector< std::vector< double > > | qlen |
| std::vector< std::vector< double > > | busy |
| std::vector< std::vector< double > > | tot_qlen |
| std::vector< std::vector< double > > | tot_busy |
| std::vector< std::vector< double > > | last_qlen |
| std::vector< std::vector< double > > | last_busy |
| std::vector< double > | busy_scale |
| The speed each station is running at right now (load dependence only), and the peak capacity that normalizes its utilization, max(c, max(alpha)). | |
| std::vector< double > | util_peak |
| std::vector< std::vector< double > > | resp_sum |
| std::vector< std::vector< double > > | resp_cnt |
| std::vector< std::vector< double > > | completed |
| std::vector< std::vector< double > > | arrived |
| Jobs that ARRIVED at each (station, class), which is not what completed counts: the reference reports AN as arrivedCustomers / simTime, and the two differ by whatever is still in the station at the end and by anything dropped, balked or reneged. | |
| std::vector< std::vector< double > > | join_dropped |
| Siblings a QUORUM Join discarded, per (station, class): a sibling that reaches the Join after its parent already fired lost the race and is thrown away. | |
The running per-(station, class) integrals and tallies.
Definition at line 46 of file ldes_stats.h.
|
inline |
Definition at line 47 of file ldes_stats.h.
References arrived, busy, busy_scale, completed, join_dropped, last_busy, last_qlen, qlen, resp_cnt, resp_sum, tot_busy, tot_qlen, and util_peak.
|
inline |
Install the load-dependent speed station i runs at from now on.
Flushes every class FIRST, so the interval that just ended is credited at the scale that was actually in force over it. The engine calls this after the population is written, from the same chokepoint that re-times the departures.
Definition at line 90 of file ldes_stats.h.
References busy, busy_scale, and update_busy().
|
inline |
Advance the busy-server integral of (i,r) to now.
Call BEFORE writing busy.
The integrand is the WORK being delivered, busy * busy_scale, not the head count: a load-dependent server running alpha(n) times faster does the same work in less time, so plain busy TIME reads it as no busier than one at its nominal rate. busy_scale is 1 unless the station is load dependent, so this is the identity everywhere else.
Definition at line 77 of file ldes_stats.h.
References busy, busy_scale, last_busy, and tot_busy.
Referenced by set_busy_scale().
|
inline |
Advance the queue-length integral of (i,r) to now.
Call BEFORE writing qlen.
Definition at line 63 of file ldes_stats.h.
| std::vector<std::vector<double> > line::ldes::engine::Accum::arrived |
Jobs that ARRIVED at each (station, class), which is not what completed counts: the reference reports AN as arrivedCustomers / simTime, and the two differ by whatever is still in the station at the end and by anything dropped, balked or reneged.
Reporting completions as the arrival rate would hide exactly the loss those features exist to measure.
Definition at line 118 of file ldes_stats.h.
Referenced by Accum().
| std::vector<std::vector<double> > line::ldes::engine::Accum::busy |
Definition at line 96 of file ldes_stats.h.
Referenced by Accum(), set_busy_scale(), and update_busy().
| std::vector<double> line::ldes::engine::Accum::busy_scale |
The speed each station is running at right now (load dependence only), and the peak capacity that normalizes its utilization, max(c, max(alpha)).
util_peak is CTMC's own ceff, which is what makes LDES report the same utilization as the analytic solvers on a load-dependent station. Both are 1 and c respectively when the station is not load dependent, leaving every other model's numbers untouched.
Definition at line 109 of file ldes_stats.h.
Referenced by Accum(), set_busy_scale(), and update_busy().
| std::vector<std::vector<double> > line::ldes::engine::Accum::completed |
Definition at line 110 of file ldes_stats.h.
Referenced by Accum(), line::ldes::engine::Observations::collect(), and line::ldes::engine::Convergence::finalize_batch().
| std::vector<std::vector<double> > line::ldes::engine::Accum::join_dropped |
Siblings a QUORUM Join discarded, per (station, class): a sibling that reaches the Join after its parent already fired lost the race and is thrown away.
It is a completion of nothing, so it belongs neither in completed nor in arrived, and it is what a Join row's loss rate is. Cumulative, and differenced against the truncation point like completed.
Definition at line 126 of file ldes_stats.h.
Referenced by Accum(), and line::ldes::engine::Observations::collect().
| std::vector<std::vector<double> > line::ldes::engine::Accum::last_busy |
Definition at line 98 of file ldes_stats.h.
Referenced by Accum(), and update_busy().
| std::vector<std::vector<double> > line::ldes::engine::Accum::last_qlen |
Definition at line 98 of file ldes_stats.h.
Referenced by Accum(), and update_qlen().
| std::vector<std::vector<double> > line::ldes::engine::Accum::qlen |
Definition at line 96 of file ldes_stats.h.
Referenced by Accum(), line::ldes::engine::Observations::collect(), and update_qlen().
| std::vector<std::vector<double> > line::ldes::engine::Accum::resp_cnt |
Definition at line 110 of file ldes_stats.h.
Referenced by Accum(), and line::ldes::engine::Convergence::finalize_batch().
| std::vector<std::vector<double> > line::ldes::engine::Accum::resp_sum |
Definition at line 110 of file ldes_stats.h.
Referenced by Accum(), and line::ldes::engine::Convergence::finalize_batch().
| std::vector<std::vector<double> > line::ldes::engine::Accum::tot_busy |
Definition at line 97 of file ldes_stats.h.
Referenced by Accum(), line::ldes::engine::Observations::collect(), line::ldes::engine::Convergence::finalize_batch(), and update_busy().
| std::vector<std::vector<double> > line::ldes::engine::Accum::tot_qlen |
Definition at line 97 of file ldes_stats.h.
Referenced by Accum(), line::ldes::engine::Observations::collect(), line::ldes::engine::Convergence::finalize_batch(), and update_qlen().
| std::vector<double> line::ldes::engine::Accum::util_peak |
Definition at line 109 of file ldes_stats.h.
Referenced by Accum(), and line::ldes::engine::Convergence::finalize_batch().