Package org.apache.commons.math.random
Class ValueServer
- java.lang.Object
-
- org.apache.commons.math.random.ValueServer
-
public class ValueServer extends java.lang.ObjectGenerates values for use in simulation applications.How values are generated is determined by the
modeproperty.Supported
modevalues are:- DIGEST_MODE -- uses an empirical distribution
- REPLAY_MODE -- replays data from
valuesFileURL - UNIFORM_MODE -- generates uniformly distributed random values with
mean =
mu - EXPONENTIAL_MODE -- generates exponentially distributed random values
with mean =
mu - GAUSSIAN_MODE -- generates Gaussian distributed random values with
mean =
muand standard deviation =sigma - CONSTANT_MODE -- returns
muevery time.
-
-
Field Summary
Fields Modifier and Type Field Description static intCONSTANT_MODEAlways return mustatic intDIGEST_MODEUse empirical distribution.static intEXPONENTIAL_MODEExponential random deviates with mean = μ.static intGAUSSIAN_MODEGaussian random deviates with mean = μ, std dev = σ.static intREPLAY_MODEReplay data from valuesFilePath.static intUNIFORM_MODEUniform random deviates with mean = μ.
-
Constructor Summary
Constructors Constructor Description ValueServer()Creates new ValueServerValueServer(RandomData randomData)Construct a ValueServer instance using a RandomData as its source of random data.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseReplayFile()ClosesvaluesFileURLafter use in REPLAY_MODE.voidcomputeDistribution()Computes the empirical distribution using values from the file invaluesFileURL, using the default number of bins.voidcomputeDistribution(int binCount)Computes the empirical distribution using values from the file invaluesFileURLandbinCountbins.voidfill(double[] values)Fills the input array with values generated using getNext() repeatedly.double[]fill(int length)Returns an array of lengthlengthwith values generated using getNext() repeatedly.EmpiricalDistributiongetEmpiricalDistribution()Getter for property empiricalDistribution.intgetMode()Getter for property mode.doublegetMu()Getter for property mu.doublegetNext()Returns the next generated value, generated according to the mode value (see MODE constants).doublegetSigma()Getter for property sigma.java.net.URLgetValuesFileURL()Getter forvaluesFileURLvoidresetReplayFile()Resets REPLAY_MODE file pointer to the beginning of thevaluesFileURL.voidsetMode(int mode)Setter for property mode.voidsetMu(double mu)Setter for property mu.voidsetSigma(double sigma)Setter for property sigma.voidsetValuesFileURL(java.lang.String url)Sets thevaluesFileURLusing a string URL representationvoidsetValuesFileURL(java.net.URL url)Sets thevaluesFileURL
-
-
-
Field Detail
-
DIGEST_MODE
public static final int DIGEST_MODE
Use empirical distribution.- See Also:
- Constant Field Values
-
REPLAY_MODE
public static final int REPLAY_MODE
Replay data from valuesFilePath.- See Also:
- Constant Field Values
-
UNIFORM_MODE
public static final int UNIFORM_MODE
Uniform random deviates with mean = μ.- See Also:
- Constant Field Values
-
EXPONENTIAL_MODE
public static final int EXPONENTIAL_MODE
Exponential random deviates with mean = μ.- See Also:
- Constant Field Values
-
GAUSSIAN_MODE
public static final int GAUSSIAN_MODE
Gaussian random deviates with mean = μ, std dev = σ.- See Also:
- Constant Field Values
-
CONSTANT_MODE
public static final int CONSTANT_MODE
Always return mu- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ValueServer
public ValueServer()
Creates new ValueServer
-
ValueServer
public ValueServer(RandomData randomData)
Construct a ValueServer instance using a RandomData as its source of random data.- Parameters:
randomData- the RandomData instance used to source random data- Since:
- 1.1
-
-
Method Detail
-
getNext
public double getNext() throws java.io.IOExceptionReturns the next generated value, generated according to the mode value (see MODE constants).- Returns:
- generated value
- Throws:
java.io.IOException- in REPLAY_MODE if a file I/O error occurs
-
fill
public void fill(double[] values) throws java.io.IOExceptionFills the input array with values generated using getNext() repeatedly.- Parameters:
values- array to be filled- Throws:
java.io.IOException- in REPLAY_MODE if a file I/O error occurs
-
fill
public double[] fill(int length) throws java.io.IOExceptionReturns an array of lengthlengthwith values generated using getNext() repeatedly.- Parameters:
length- length of output array- Returns:
- array of generated values
- Throws:
java.io.IOException- in REPLAY_MODE if a file I/O error occurs
-
computeDistribution
public void computeDistribution() throws java.io.IOExceptionComputes the empirical distribution using values from the file invaluesFileURL, using the default number of bins.valuesFileURLmust exist and be readable by *this at runtime.This method must be called before using
getNext()withmode = DIGEST_MODE- Throws:
java.io.IOException- if an I/O error occurs reading the input file
-
computeDistribution
public void computeDistribution(int binCount) throws java.io.IOExceptionComputes the empirical distribution using values from the file invaluesFileURLandbinCountbins.valuesFileURLmust exist and be readable by this process at runtime.This method must be called before using
getNext()withmode = DIGEST_MODE- Parameters:
binCount- the number of bins used in computing the empirical distribution- Throws:
java.io.IOException- if an error occurs reading the input file
-
getMode
public int getMode()
Getter for property mode.- Returns:
- Value of property mode.
-
setMode
public void setMode(int mode)
Setter for property mode.- Parameters:
mode- New value of property mode.
-
getValuesFileURL
public java.net.URL getValuesFileURL()
Getter forvaluesFileURL- Returns:
- Value of property valuesFileURL.
-
setValuesFileURL
public void setValuesFileURL(java.lang.String url) throws java.net.MalformedURLExceptionSets thevaluesFileURLusing a string URL representation- Parameters:
url- String representation for new valuesFileURL.- Throws:
java.net.MalformedURLException- if url is not well formed
-
setValuesFileURL
public void setValuesFileURL(java.net.URL url)
Sets thevaluesFileURL- Parameters:
url- New value of property valuesFileURL.
-
getEmpiricalDistribution
public EmpiricalDistribution getEmpiricalDistribution()
Getter for property empiricalDistribution.- Returns:
- Value of property empiricalDistribution.
-
resetReplayFile
public void resetReplayFile() throws java.io.IOExceptionResets REPLAY_MODE file pointer to the beginning of thevaluesFileURL.- Throws:
java.io.IOException- if an error occurs opening the file
-
closeReplayFile
public void closeReplayFile() throws java.io.IOExceptionClosesvaluesFileURLafter use in REPLAY_MODE.- Throws:
java.io.IOException- if an error occurs closing the file
-
getMu
public double getMu()
Getter for property mu.- Returns:
- Value of property mu.
-
setMu
public void setMu(double mu)
Setter for property mu.- Parameters:
mu- New value of property mu.
-
getSigma
public double getSigma()
Getter for property sigma.- Returns:
- Value of property sigma.
-
setSigma
public void setSigma(double sigma)
Setter for property sigma.- Parameters:
sigma- New value of property sigma.
-
-