Class Expolynomial
- All Implemented Interfaces:
Serializable,Copyable
Represents an expolynomial density over a bounded domain [eft, lft], matching the Sirio/ORIS GEN expolynomial format. The density is carried as a Sirio expression string rather than as numeric parameters, so it is opaque to this class: the class stores and transports it verbatim.
The parameter slots mirror the MATLAB reference implementation (matlab/src/lang/processes/Expolynomial.m):
- param 1 -
density, the Sirio density expression string - param 2 -
eft, the earliest firing time (lower bound of support) - param 3 -
lft, the latest firing time (upper bound of support, possiblyDouble.POSITIVE_INFINITY)
Moments. As in MATLAB and in the Python-native implementation, the
moments of an expolynomial density are not obtained by numerical integration:
getMean(), getSCV(), getSkewness(),
evalCDF(double), evalLST(double) and sample(int, Random)
all return NaN. The distribution is therefore a transport-only type in the
lang layer: it carries the density to engines that can interpret it (Sirio/ORIS
GEN), and every moment-based solver sees NaN rather than a silently wrong value.
Support. Unlike MATLAB, which passes a NaN placeholder triple to the
superclass constructor, the support is reported here as the pair (eft, lft),
matching the getSupport of the Python-native implementation.
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorsConstructorDescriptionExpolynomial(String density, double eft, double lft) Creates an expolynomial distribution. -
Method Summary
Modifier and TypeMethodDescriptiondoubleevalCDF(double t) Returns NaN: the CDF of a Sirio density expression is not evaluated here.doubleevalLST(double s) Returns NaN: the LST of a Sirio density expression is not evaluated here.Returns the density expression string in Sirio format.doublegetEft()Returns the earliest firing time, i.e.doublegetLft()Returns the latest firing time, i.e.doublegetMean()Returns NaN: the mean is not obtained by numerical integration.Returns the numeric part of the process representation, {eft, lft}, as two singleton matrices.doublegetSCV()Returns NaN: the SCV is not obtained by numerical integration.doubleReturns NaN: the skewness is not obtained by numerical integration.double[]Returns an array of n NaNs: sampling a Sirio density expression is not supported.toString()Methods inherited from class jline.lang.processes.Distribution
evalProbInterval, getName, getNumParams, getParam, getRate, getSupport, getVar, isContinuous, isDisabled, isDiscrete, isImmediate, isMarkovian, mean, name, numParams, param, rate, sample, scv, setNumParams, setParam, skewness, support, var
-
Constructor Details
-
Expolynomial
Creates an expolynomial distribution.- Parameters:
density- density expression string in Sirio formateft- earliest firing time (lower bound of support)lft- latest firing time (upper bound of support, may beDouble.POSITIVE_INFINITY)
-
-
Method Details
-
getDensity
Returns the density expression string in Sirio format. -
getEft
public double getEft()Returns the earliest firing time, i.e. the lower bound of the support. -
getLft
public double getLft()Returns the latest firing time, i.e. the upper bound of the support. May beDouble.POSITIVE_INFINITYfor an unbounded density. -
getMean
public double getMean()Returns NaN: the mean is not obtained by numerical integration.- Specified by:
getMeanin classDistribution- Returns:
- the mean value
-
getSCV
public double getSCV()Returns NaN: the SCV is not obtained by numerical integration.- Specified by:
getSCVin classDistribution- Returns:
- the squared coefficient of variation
-
getSkewness
public double getSkewness()Returns NaN: the skewness is not obtained by numerical integration.- Specified by:
getSkewnessin classDistribution- Returns:
- the skewness value
-
evalCDF
public double evalCDF(double t) Returns NaN: the CDF of a Sirio density expression is not evaluated here.- Specified by:
evalCDFin classDistribution- Parameters:
t- the point at which to evaluate the CDF- Returns:
- the CDF value at point t
-
evalLST
public double evalLST(double s) Returns NaN: the LST of a Sirio density expression is not evaluated here.- Specified by:
evalLSTin classContinuousDistribution- Parameters:
s- the Laplace domain variable- Returns:
- the LST value at s
-
getProcess
Returns the numeric part of the process representation, {eft, lft}, as two singleton matrices. The density expression is a string and hence cannot be held in a MatrixCell; obtain it withgetDensity().- Specified by:
getProcessin classContinuousDistribution- Returns:
- MatrixCell with distribution-specific parameters
-
sample
Returns an array of n NaNs: sampling a Sirio density expression is not supported.- Specified by:
samplein classDistribution- Parameters:
n- the number of samples to generaterandom- the random number generator to use- Returns:
- array of random samples
-
toString
-