| 
|   | HypoExponentialDist (double[] lambda) | 
|   | Constructs a HypoExponentialDist object, with rates \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| 
double  | density (double x) | 
|   | 
| double  | cdf (double x) | 
|   | Returns the distribution function \(F(x)\).  More...
  | 
|   | 
| double  | barF (double x) | 
|   | Returns \(\bar{F}(x) = 1 - F(x)\).  More...
  | 
|   | 
| double  | inverseF (double u) | 
|   | Returns the inverse distribution function \(F^{-1}(u)\), defined in ( inverseF ).  More...
  | 
|   | 
| 
double  | getMean () | 
|   | Returns the mean of the distribution function. 
  | 
|   | 
| 
double  | getVariance () | 
|   | Returns the variance of the distribution function. 
  | 
|   | 
| 
double  | getStandardDeviation () | 
|   | Returns the standard deviation of the distribution function. 
  | 
|   | 
| 
double []  | getLambda () | 
|   | Returns the values \(\lambda_i\) for this object. 
  | 
|   | 
| 
void  | setLambda (double[] lambda) | 
|   | Sets the values \(\lambda_i = \)lambda[ \(i-1\)], \(i = 1,…,k\) for this object. 
  | 
|   | 
| 
double []  | getParams () | 
|   | Same as getLambda. 
  | 
|   | 
| 
String  | toString () | 
|   | Returns a String containing information about the current distribution. 
  | 
|   | 
| abstract double  | density (double x) | 
|   | Returns \(f(x)\), the density evaluated at \(x\).  More...
  | 
|   | 
| double  | barF (double x) | 
|   | Returns the complementary distribution function.  More...
  | 
|   | 
| double  | inverseBrent (double a, double b, double u, double tol) | 
|   | Computes the inverse distribution function \(x = F^{-1}(u)\), using the Brent-Dekker method.  More...
  | 
|   | 
| double  | inverseBisection (double u) | 
|   | Computes and returns the inverse distribution function \(x = F^{-1}(u)\), using bisection.  More...
  | 
|   | 
| double  | inverseF (double u) | 
|   | Returns the inverse distribution function \(x = F^{-1}(u)\).  More...
  | 
|   | 
| double  | getMean () | 
|   | Returns the mean.  More...
  | 
|   | 
| double  | getVariance () | 
|   | Returns the variance.  More...
  | 
|   | 
| double  | getStandardDeviation () | 
|   | Returns the standard deviation.  More...
  | 
|   | 
| double  | getXinf () | 
|   | Returns \(x_a\) such that the probability density is 0 everywhere outside the interval \([x_a, x_b]\).  More...
  | 
|   | 
| double  | getXsup () | 
|   | Returns \(x_b\) such that the probability density is 0 everywhere outside the interval \([x_a, x_b]\).  More...
  | 
|   | 
| void  | setXinf (double xa) | 
|   | Sets the value \(x_a=\) xa, such that the probability density is 0 everywhere outside the interval \([x_a, x_b]\).  More...
  | 
|   | 
| void  | setXsup (double xb) | 
|   | Sets the value \(x_b=\) xb, such that the probability density is 0 everywhere outside the interval \([x_a, x_b]\).  More...
  | 
|   | 
 | 
| static double  | density (double[] lambda, double x) | 
|   | Computes the density function \(f(x)\), with \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | cdf (double[] lambda, double x) | 
|   | Computes the distribution function \(F(x)\), with \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | cdf2 (double[] lambda, double x) | 
|   | Computes the distribution function \(F(x)\), with \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | barF (double[] lambda, double x) | 
|   | Computes the complementary distribution \(\bar{F}(x)\), with \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | inverseF (double[] lambda, double u) | 
|   | Computes the inverse distribution function \(F^{-1}(u)\), with \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | getMean (double[] lambda) | 
|   | Returns the mean, \(E[X] = \sum_{i=1}^k 1/\lambda_i\), of the hypoexponential distribution with rates \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | getVariance (double[] lambda) | 
|   | Returns the variance, \(\mbox{Var}[X] = \sum_{i=1}^k 1/\lambda_i^2\), of the hypoexponential distribution with rates \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
| static double  | getStandardDeviation (double[] lambda) | 
|   | Returns the standard deviation of the hypoexponential distribution with rates \(\lambda_i = \) lambda[ \(i-1\)], \(i = 1,…,k\).  More...
  | 
|   | 
This class implements the hypoexponential distribution, also called the generalized Erlang distribution. 
Let the \(X_j\), \(j=1,…,k\), be \(k\) independent exponential random variables with different rates \(\lambda_j\), i.e. assume that \(\lambda_j \neq\lambda_i\) for \(i \neq j\). Then the sum \(\sum_{j=1}^kX_j\) is called a hypoexponential random variable.
Let the \(k\times k\) upper triangular bidiagonal matrix  
\[ \tag{tail-hypomatrix} \mathbf{A}= \begin{pmatrix} -\lambda_1 & \lambda_1 & 0 & … & 0 \\ 0 & -\lambda_2 & \lambda_2 & … & 0 \\ \vdots & \vdots & \ddots &   \ddots & \vdots \\ 0 & … & 0 & -\lambda_{k-1} & \lambda_{k-1} \\ 0 & … & 0 & 0 & -\lambda_k \end{pmatrix} \]
 with \(\lambda_j\) the rates of the \(k\) exponential random variables; then the cumulative complementary probability of the hypoexponential distribution is given by [184], [116]   
\[ \tag{tail-hypoexp} \bar{F}(x) = \mathbb P \left[X_1 + \cdots+ X_k > x \right] = \sum_{j=1}^k \left(e^{\mathbf{A}x}\right)_{1j}, \]
 i.e., it is the sum of the elements of the first row of matrix \(e^{\mathbf{A}x}\). The density of the hypoexponential distribution is  
\[ f(x) = \left(-e^{\mathbf{A}x}\mathbf{A}\right)_{1k} = \lambda_k \left(e^{\mathbf{A}x}\right)_{1k}, \tag{fhypoexp} \]
 i.e., it is element \((1,k)\) of matrix \(-e^{\mathbf{A}x}\mathbf{A}\). The distribution function is as usual \(F(x) = 1 - \bar{F}(x)\).
See the class HypoExponentialDistQuick for alternative formulae for the probabilities.