public class NHPoissonProcess_64Variate extends BasicSimEntity implements RandomVariate
This implementation uses the inverse-integral transform. The user must supply a Method that is the inverse of the expectation function (Λ). See Law and Kelton: Simulation Modeling and Analysis 2nd Edition, pp 509-510 or 3rd edition pp486-487.
Uses simkit.util.Math64.log() function for replicability on 64-bit platforms.
| Modifier and Type | Field and Description |
|---|---|
private java.lang.Object[] |
arg
Holds the argument for the inverse expectation function.
|
private java.lang.reflect.Method |
inverseIntegratedRate
A Method to provide the inverse of the expectation function.
|
protected double |
lastGeneratedTime
The last actual arrival time.
|
protected double |
lastUnitRatePoisson
The last unit rate arrival time.
|
private java.lang.Object |
rateInvoker
The instance of an Object that contains the inverse expectation function.
|
private RandomNumber |
rng
The instance of the supporting RandomNumber.
|
protected double |
startTime
The time to start the process.
|
eventList, propertyDEFAULT_ENTITY_NAME, DEFAULT_EVENT_NAME, DEFAULT_PRIORITY, EVENT_METHOD_PREFIX, NL| Constructor and Description |
|---|
NHPoissonProcess_64Variate()
Creates new NHPoissonProcessVariate, the parameters must be set prior to use.
|
| Modifier and Type | Method and Description |
|---|---|
double |
generate()
Generate a random variate having this class's distribution.
|
java.lang.reflect.Method |
getInverseIntegratedRate() |
double |
getLastGeneratedTime() |
double |
getLastUnitRatePoisson() |
java.lang.Object[] |
getParameters()
Returns a 3 element array containing the Method for the inverse function,
the Object in which the inverse function exists, and the start time.
|
RandomNumber |
getRandomNumber()
Gets the instance of the underlying RandomNumber.
|
java.lang.Object |
getRateInvoker() |
double |
getStartTime() |
void |
handleSimEvent(SimEvent event)
Typically an Event is handled (as opposed to processed, as in SimEventListener)
by actually executing a method.
|
void |
processSimEvent(SimEvent event)
Process the given SimEvent.
|
void |
reset()
Resets this BasicSimEntity by canceling all of its pending SimEvents.
|
void |
setInverseIntegratedRate(java.lang.reflect.Method m) |
void |
setParameters(java.lang.Object... params)
Sets the Lambda-inverse Method and the starting time.
|
void |
setRandomNumber(RandomNumber rng)
Sets the supporting RandomNumber object
|
void |
setRateInvoker(java.lang.Object rateInvoker) |
java.lang.String |
stateString() |
java.lang.String |
toString()
Returns a String containing the name of this variate, the name of the
inverse Method, information about the Object on which the inverse Method is
invoked, and the start time.
|
addPropertyChangeListener, addPropertyChangeListener, attemptSchedule, clearAddedProperty, compareTo, fireIndexedPropertyChange, fireIndexedPropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAddedProperties, getEventList, getEventListID, getName, getPriority, getPropertiesString, getProperty, getProperty, getPropertyChangeListeners, getSerial, interrupt, interrupt, interruptAll, interruptAll, interruptAll, interruptAllWithArgs, interruptAllWithArgs, isClearAddedPropertiesOnReset, isJustDefinedProperties, isPersistant, isReRunnable, isVerbose, parametersMatch, removePropertyChangeListener, removePropertyChangeListener, resetNextSerial, setClearAddedPropertiesOnReset, setEventList, setEventListID, setJustDefinedProperties, setName, setPersistant, setPriority, setProperty, setVerbose, waitDelay, waitDelay, waitDelay, waitDelayaddSimEventListener, getSimEventListeners, notifyListeners, removeSimEventListenerclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddSimEventListener, getSimEventListeners, notifyListeners, removeSimEventListenerprotected double startTime
private RandomNumber rng
private java.lang.reflect.Method inverseIntegratedRate
private java.lang.Object rateInvoker
protected double lastUnitRatePoisson
protected double lastGeneratedTime
private java.lang.Object[] arg
public NHPoissonProcess_64Variate()
public void reset()
BasicSimEntityreset in interface ReRunnablereset in class BasicSimEntitypublic double generate()
generate in interface RandomVariatepublic java.lang.Object[] getParameters()
getParameters in interface RandomVariatepublic RandomNumber getRandomNumber()
getRandomNumber in interface RandomVariatepublic void setParameters(java.lang.Object... params)
setParameters in interface RandomVariateparams - A 3 element array containing the Method to evaluate the
inverse expectation function (Lambda inverse), the Object in which
Lambda inverse resides, and the start time.java.lang.IllegalArgumentException - If the array does not contain exactly
3 elements.public void setRandomNumber(RandomNumber rng)
setRandomNumber in interface RandomVariaterng - The RandomNumber instance supporting the generating algorithmpublic void setInverseIntegratedRate(java.lang.reflect.Method m)
m - Λ-1 Methodpublic java.lang.reflect.Method getInverseIntegratedRate()
public void setRateInvoker(java.lang.Object rateInvoker)
rateInvoker - the Object on which to invoke the Λ-1 Method.public java.lang.Object getRateInvoker()
public double getStartTime()
public java.lang.String toString()
toString in class BasicSimEntitypublic java.lang.String stateString()
public void handleSimEvent(SimEvent event)
SimEventSchedulerhandleSimEvent in interface SimEventSchedulerhandleSimEvent in class BasicSimEntityevent - The SimEvent to be handled.public void processSimEvent(SimEvent event)
BasicSimEntityprocessSimEvent in interface SimEventListenerprocessSimEvent in class BasicSimEntityevent - The SimEvent to process.public double getLastUnitRatePoisson()
public double getLastGeneratedTime()