5#ifndef LINE_SOLVERS_MVA_SOLVER_MVA_CACHEQN_H
6#define LINE_SOLVERS_MVA_SOLVER_MVA_CACHEQN_H
55 "solver_mva_cacheqn_analyzer: the integrated caching-queueing decomposition needs "
56 "transcendental arithmetic; rerun with --arith double or --arith real");
61 bool has_scaling =
false;
62 for (
const auto& st : snit.stations)
63 if (!st.lldscaling.empty() || st.cdscaling) has_scaling =
true;
68 const bool exact = (
opt.method ==
"exact");
Exact per-item hit and miss probabilities of a multi-list cache.
TTL (characteristic-time) approximation of an LRU cache whose lists form an arbitrary access graph.
UnsupportedError(const std::string &what)
A network plus its refreshed NetworkStruct.
void refresh_cacheqn_actual_visits(const Matrix< T > &hitprob, const Matrix< T > &missprob)
Re-resolve the cache read self-switch from the offered 1/2-1/2 to the ACTUAL hit/miss probabilities t...
Decomposition-aggregation driver for integrated cache-queueing models, a port of matlab/src/api/da/da...
The option and result types every MVA analyzer shares.
CacheqnResult< T > da_cacheqn(qn::NetworkStruct< T > sn, bool exact, const mva::MvaOptions &opt, const std::function< mva::MvaSolution< T >(const qn::NetworkStruct< T > &)> &netfun, const std::function< std::vector< T >(const Matrix< T > &, const std::vector< int > &, const std::vector< Matrix< T > > &, const qn::CacheParam< T > &)> &missfun=nullptr)
Decomposition-aggregation driver for integrated cache-queueing models, a port of matlab/src/api/da/da...
std::vector< Matrix< T > > da_cacheqn_itemprob(const CacheqnInfo< T > &info)
Per-item occupancy of every cache from the CONVERGED access factors.
MvaSolution< T > solver_mva_cacheqn_analyzer(const qn::NetworkStruct< T > &L, const MvaOptions &opt, qn::NetworkStruct< T > *refreshed_out=nullptr, MvaCacheqnCacheOutputs< T > *cache_out=nullptr)
DispatchResult< T > solver_mvald_analyzer(const qn::NetworkStruct< T > &L, const MvaOptions &opt, const Matrix< T > &init_sol)
Port of solver_mvald_analyzer.m: the load-dependent branch.
MvaSolution< T > solver_mva_analyzer(const qn::NetworkStruct< T > &L, const MvaOptions &opt, const Matrix< T > &init_sol)
Port of solver_mva_analyzer.m, default and the explicit method names.
SolverMVA over a SolverLN layer.
Matrix< T > missprob
(ncaches x nclasses)
Matrix< T > hitprob
(ncaches x nclasses)
mva::MvaSolution< T > res
The cache half of the reference's return list: the (ncaches x nclasses) hit and miss split,...
Matrix< T > missprob
(ncaches x nclasses)
Matrix< T > hitprob
(ncaches x nclasses)
std::vector< Matrix< T > > itemprob
per cache, (n x h+1); EMPTY = not computed
The options SolverMVA reads.
Class-level results, the [Q,U,R,T,C,X] of the MATLAB analyzers.