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

MAP algebra missing from the moment and transform headers: time reversal, the Kronecker product composition, the subdominant eigenvalue of the embedded chain and the large-order threshold. More...

#include <algorithm>
#include <complex>
#include <cstddef>
#include <vector>
#include "line/api/mam/map_moment.h"
#include "line/api/mam/map_transform.h"
#include "line/api/mam/mmap_lambda.h"
#include "line/num/number.h"
#include "line/util/eig.h"
#include "line/util/error.h"
#include "line/util/linalg.h"
#include "line/util/matrix.h"
Include dependency graph for map_algebra.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::mam

Functions

std::size_t line::mam::map_largemap ()
 Order above which a MAP counts as large for the fitting heuristics.
template<class T>
Map< T > line::mam::map_timereverse (const Map< T > &m)
 Time-reversed MAP, diag(pi)^-1 M' diag(pi) applied to D0 and D1.
template<class T>
Map< T > line::mam::map_kpc (const Map< T > &a, const Map< T > &b)
 Kronecker product composition of two MAPs.
template<class T>
Map< T > line::mam::map_kpc (const std::vector< Map< T > > &maps)
 Left-folded composition of a whole list of MAPs.
std::complex< double > line::mam::map_gamma2 (const Map< double > &m)
 Subdominant eigenvalue of the embedded chain, the leading ACF decay rate.

Detailed Description

MAP algebra missing from the moment and transform headers: time reversal, the Kronecker product composition, the subdominant eigenvalue of the embedded chain and the large-order threshold.

Templated port of matlab/lib/kpctoolbox/map/map_timereverse.m, map_kpc.m, map_gamma2.m and map_largemap.m.

map_kpc composes two MAPs into one of order na*nb whose autocorrelation decays with the PRODUCT of the two decay rates; note the sign, D0 of the composition is MINUS the Kronecker product of the two D0 blocks, because kron of two matrices with negative diagonals has a positive one.

map_gamma2 is the second largest eigenvalue in modulus of the embedded chain, which is the geometric decay rate of the autocorrelation of a second-order MAP and its leading term in general. It is genuinely COMPLEX for a MAP with oscillating correlation, so it is returned as such rather than as its modulus.

Definition in file map_algebra.h.