Class HyperExp

All Implemented Interfaces:
Serializable, Copyable

public class HyperExp extends Markovian implements Serializable
A hyper-exponential distribution.
See Also:
  • Constructor Details

    • HyperExp

      public HyperExp(double p, double lambda1, double lambda2)
    • HyperExp

      public HyperExp(double p, double lambda)
  • Method Details

    • fitMeanAndSCV

      public static HyperExp fitMeanAndSCV(double mean, double scv)
      Fit distribution with given mean and squared coefficient of variation (SCV=variance/mean^2)
    • fitMeanAndSCVBalanced

      public static HyperExp fitMeanAndSCVBalanced(double mean, double scv)
      Fit distribution with given squared coefficient of variation and balanced means i.e., p/mu1 = (1-p)/mu2
    • evalCDF

      public double evalCDF(double t)
      Description copied from class: Markovian
      Evaluates the cumulative distribution function at the given point.
      Overrides:
      evalCDF in class Markovian
      Parameters:
      t - the point at which to evaluate the CDF
      Returns:
      the CDF value at point t
    • evalLST

      public double evalLST(double s)
      Description copied from class: Distribution
      Evaluate the Laplace-Stieltjes Transform at s
      Overrides:
      evalLST in class Markovian
      Parameters:
      s - the Laplace domain variable
      Returns:
      the LST value at s
    • getMean

      public double getMean()
      Description copied from class: Markovian
      Gets the mean of this Markovian distribution.
      Overrides:
      getMean in class Markovian
      Returns:
      the mean value, or NaN if the process contains NaN values
    • getNumberOfPhases

      public long getNumberOfPhases()
      Description copied from class: Markovian
      Gets the number of phases in this Markovian distribution.
      Overrides:
      getNumberOfPhases in class Markovian
      Returns:
      the number of phases
    • getRate

      public double getRate()
      Description copied from class: Distribution
      Gets the rate of this distribution (inverse of mean).
      Overrides:
      getRate in class Markovian
      Returns:
      the rate value (1/mean)
    • getSCV

      public double getSCV()
      Description copied from class: Distribution
      Gets the squared coefficient of variation (SCV) of this distribution. SCV = Var(X) / E[X]^2.
      Overrides:
      getSCV in class Markovian
      Returns:
      the squared coefficient of variation
    • getSkewness

      public double getSkewness()
      Description copied from class: Distribution
      Gets the skewness of this distribution. Skewness measures the asymmetry of the probability distribution.
      Overrides:
      getSkewness in class Markovian
      Returns:
      the skewness value
    • getVar

      public double getVar()
      Description copied from class: Distribution
      Gets the variance of this distribution. Computed as SCV * mean^2.
      Overrides:
      getVar in class Markovian
      Returns:
      the variance
    • sample

      public double[] sample(int n)
      Gets n samples from the distribution
      Overrides:
      sample in class Markovian
      Parameters:
      n - - the number of samples
      Returns:
      - n samples from the distribution
    • sample

      public double[] sample(int n, Random random)
      Description copied from class: Distribution
      Generates random samples from this distribution using the specified random generator.
      Overrides:
      sample in class Markovian
      Parameters:
      n - the number of samples to generate
      random - the random number generator to use
      Returns:
      array of random samples
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • mean

      public double mean()
      Kotlin-style property alias for getMean()
      Overrides:
      mean in class Markovian
    • rate

      public double rate()
      Kotlin-style property alias for getRate()
      Overrides:
      rate in class Markovian
    • scv

      public double scv()
      Kotlin-style property alias for getSCV()
      Overrides:
      scv in class Markovian
    • skewness

      public double skewness()
      Kotlin-style property alias for getSkewness()
      Overrides:
      skewness in class Markovian
    • var

      public double var()
      Kotlin-style property alias for getVar()
      Overrides:
      var in class Markovian
    • numberOfPhases

      public long numberOfPhases()
      Kotlin-style property alias for getNumberOfPhases()
      Overrides:
      numberOfPhases in class Markovian
    • numPhases

      public long numPhases()
      Kotlin-style property alias for getNumberOfPhases()
      Overrides:
      numPhases in class Markovian