PWCEmpiricalCDF

class PWCEmpiricalCDF(breakPoints: DoubleArray, proportions: DoubleArray = DoubleArray(breakPoints.size - 1) { 1.0 / (breakPoints.size - 1) }, name: String? = null) : Distribution, ContinuousDistributionIfc, InverseCDFIfc, GetRVariableIfc(source)

Represents a piecewise constant empirical cumulative distribution function (CDF).

This class defines a distribution based on breakpoints and proportions, where the breakpoints represent partitioned intervals of the distribution and the proportions define the probability mass assigned to each corresponding interval.

Parameters

breakPoints

Array of doubles representing the breakpoints. The array must be sorted and values must be finite. There must be at least two breakpoints, and the values must strictly increase. These define the boundaries of the distribution's intervals.

proportions

Optional array of proportions corresponding to each interval between breakpoints. The array size should be one less than the size of the breakPoints array. By default, all intervals are assigned equal portions of probability. The proportions must form a valid probability distribution and be in the range (0,1).

name

Optional name for the distribution, defaulting to null if not provided.

Throws

If the input parameters do not adhere to the necessary constraints (e.g., invalid proportions, breakpoints not sorted, etc.).

Constructors

Link copied to clipboard
constructor(breakPoints: DoubleArray, proportions: DoubleArray = DoubleArray(breakPoints.size - 1) { 1.0 / (breakPoints.size - 1) }, name: String? = null)

Creates an instance of PWCEmpiricalCDF.

Functions

Link copied to clipboard
open override fun cdf(x: Double): Double

Returns the F(x) = Pr{X <= x} where F represents the cumulative distribution function

Link copied to clipboard
open override fun domain(): Interval
Link copied to clipboard
open override fun instance(): PWCEmpiricalCDF
Link copied to clipboard
open override fun invCDF(p: Double): Double

Provides the inverse cumulative distribution function for the distribution

Link copied to clipboard
open override fun mean(): Double

Returns the mean or expected value of a distribution

Link copied to clipboard
open override fun parameters(): DoubleArray
open override fun parameters(params: DoubleArray)

n = number of break points k = number of proportions k = n - 1 param0 = n param1..n param(n+1)..(n+1+k)

Link copied to clipboard
open override fun pdf(x: Double): Double

Returns the f(x) where f represents the probability density function for the distribution. Note this is not a probability.

Link copied to clipboard
open override fun randomVariable(streamNumber: Int, streamProvider: RNStreamProviderIfc): PWCEmpiricalRV

Promises to return a random variable that uses the supplied stream number using the supplied stream provider

Link copied to clipboard
Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open override fun variance(): Double

Returns the variance of the distribution if defined