LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
retrieval_metrics.h File Reference

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"
Include dependency graph for retrieval_metrics.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.

Detailed Description

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.