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

Rate-scaled copy of a distribution, preserving its shape. More...

#include <cmath>
#include <cstddef>
#include <vector>
#include "line/lang/lang_types.h"
#include "line/num/number.h"
#include "line/util/error.h"
#include "line/util/matrix.h"
Include dependency graph for dist_scale_rate.h:

Go to the source code of this file.

Namespaces

namespace  line
namespace  line::lang

Functions

template<class T>
Distrib< T > line::lang::dist_scale_rate (const Distrib< T > &d, const T &factor)
 The law of X / factor, in the same family as d.

Detailed Description

Rate-scaled copy of a distribution, preserving its shape.

Port of matlab/src/api/dist/dist_scale_rate.m. The result is the law of X / factor: every moment of order n is divided by factor^n, so the mean moves and the SCV, the skewness and the whole shape do not.

REBUILT FROM THE PARAMETERS, not by rescaling (D0, D1). Both routes give the same law, but only the first leaves the parameter list coherent with the family, and the parameters are what a serializing consumer writes out. The reference gives the same reason.

THIS IS THE PERTURBATION PRIMITIVE of the finite-difference branch of getSensitivityTable: scaling the rate at a (station, class) by (1 + h) is exactly the perturbation d(.)/d(rate) is taken along, which is why the scaling has to be exact in every moment and not merely in the mean.

REFUSED BY NAME, as the reference's otherwise arm refuses them: MMAP, BMAP, MAPt, PHt and Prior. A marked or time-inhomogeneous process carries more than one time scale (the per-mark blocks, the breakpoint schedule), and scaling only the one the caller had in mind would silently change the others.

Definition in file dist_scale_rate.h.