![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Exact miss, hit and delayed-hit metrics of a delayed-hit (list-based) cache. More...
#include <cstddef>#include <vector>#include "line/api/retrieval/retrieval_nc.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/matrix.h"Go to the source code of this file.
Classes | |
| struct | line::retrieval::RetrievalMetricsResult< T > |
| Mirrors the [pmiss, phit, pdh] return list of the MATLAB function. More... | |
Namespaces | |
| namespace | line |
| namespace | line::retrieval |
Functions | |
| template<class T> | |
| RetrievalMetricsResult< T > | line::retrieval::retrieval_metrics (const std::vector< int > &m, const std::vector< T > &lambda, const Matrix< T > &eta, const Matrix< T > &gamma) |
| Exact miss, hit and delayed-hit metrics of a delayed-hit (list-based) cache. | |
Exact miss, hit and delayed-hit metrics of a delayed-hit (list-based) cache.
Templated port of matlab/src/api/retrieval/retrieval_metrics.m, cross-checked against jar/src/main/java/jline/api/retrieval/Retrieval_metrics.java.
With E(m) = E(0,m) the normalizing constant of the whole system and E_i the constant of the system without item i (both from retrieval_nc):
miss ratio pi_{i,0} = E_i(m)/E(m) hit ratio at list j pi_{i,j} = m_j gamma_{i,j} E_i(m-1_j)/E(m) delayed hit at IS phi_{0,i} = lambda_i eta_{0,i} E_i(m)/E(m) delayed hit at PS s phi_{s,i} = lambda_i eta_{s,i} E_i(1_s,m)/E(m)
and every item satisfies the balance pi_{i,0} + sum_s phi_{s,i} + sum_j pi_{i,j} = 1.
ARITHMETIC: ratios of exact normalizing constants, so a finite field computation. In the exact instantiation the balance above holds as an identity between rationals, not to within a tolerance.
Definition in file retrieval_metrics.h.