![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
Derivatives at the origin of a MAP's complementary CDF and of its joint inter-arrival density. More...
#include <cstddef>#include <vector>#include "line/api/mam/map_moment.h"#include "line/num/number.h"#include "line/util/error.h"#include "line/util/linalg.h"#include "line/util/matrix.h"Go to the source code of this file.
Namespaces | |
| namespace | line |
| namespace | line::mam |
Functions | |
| template<class T> | |
| T | line::mam::map_ccdf_derivative (const Map< T > &m, unsigned i) |
| Derivative of order i at 0 of the MAP's complementary CDF, nu = pie D0^i e. | |
| template<class T> | |
| T | line::mam::map_jointpdf_derivative (const Map< T > &m, const std::vector< unsigned > &iset) |
| Mixed partial derivative at the origin of the joint density of consecutive inter-arrival times, gamma = pie prod_j (D0^{i_j} D1) e. | |
Derivatives at the origin of a MAP's complementary CDF and of its joint inter-arrival density.
Templated port of matlab/src/api/mam/map_ccdf_derivative.m and matlab/src/api/mam/map_jointpdf_derivative.m. Both are the building blocks of the joint-moment analysis of networks of MAP/MAP/1 queues in A. Horvath, G. Horvath, M. Telek, "A Joint Moments Based Analysis of Networks of MAP/MAP/1 Queues".
The CCDF of the inter-arrival time of a MAP is F^c(t) = pie exp(D0 t) e, so its i-th derivative at 0 is
nu_i = pie D0^i e.
The joint density of a run of consecutive inter-arrival times is f(t_1,...,t_k) = pie exp(D0 t_1) D1 ... exp(D0 t_k) D1 e, so the mixed partial derivative of orders (i_1,...,i_k) at the origin is
gamma = pie (D0^{i_1} D1) (D0^{i_2} D1) ... (D0^{i_k} D1) e.
ARITHMETIC. Both are finite products of the descriptor matrices with the embedded arrival vector pie, which is itself a linear solve, so the whole computation is rational in the entries of D0 and D1. Neither is gated: they instantiate at Rational, where the derivatives come out as exact fractions. That matters here because these derivatives alternate in sign and grow like i! ||D0||^i, so at double a moderately stiff MAP loses most of its significant digits by i = 6, and only the exact instantiation can tell a genuine near-cancellation from an accumulation of rounding.
Definition in file map_joint_derivative.h.