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

Saddle-point approximation of the per-item cache hit probabilities. More...

#include <cmath>
#include <cstddef>
#include <vector>
#include "line/api/cache/cache_erec.h"
#include "line/api/cache/cache_spm.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for cache_prob_spm.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::cache

Functions

template<class T>
Matrix< T > line::cache::cache_prob_spm (const Matrix< T > &gamma, const std::vector< int > &m)
 Saddle-point approximation of the per-item cache hit probabilities.

Detailed Description

Saddle-point approximation of the per-item cache hit probabilities.

Templated port of matlab/src/api/cache/cache_prob_spm.m, cross-checked against jar/src/main/java/jline/api/cache/Cache_prob_rayint.java (the JAR's only implementation of this shape; see the note below).

Same ratio-of-constants identity as cache_prob_erec,

prob(i,1+j) = m(j) gamma(i,j) exp(lE_i - lE),

with lE the log normalizing constant from cache_spm and lE_i the same quantity for the model with item i deleted and list j one slot smaller. The miss probability closes the row. Because both constants are approximations the rows only sum to one up to the saddle-point error, which is why the reference wraps the miss entry in abs().

ARITHMETIC: transcendental, inherited from cache_spm.

Definition in file cache_prob_spm.h.