|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math3.random.ValueServer
public class ValueServer
Generates values for use in simulation applications.
How values are generated is determined by the mode
property.
Supported mode
values are:
valuesFileURL
mu
mu
mu
and
standard deviation = sigma
mu
every time.
Field Summary | |
---|---|
static int |
CONSTANT_MODE
Always return mu |
static int |
DIGEST_MODE
Use empirical distribution. |
private EmpiricalDistribution |
empiricalDistribution
Empirical probability distribution for use with DIGEST_MODE. |
static int |
EXPONENTIAL_MODE
Exponential random deviates with mean = μ. |
private BufferedReader |
filePointer
File pointer for REPLAY_MODE. |
static int |
GAUSSIAN_MODE
Gaussian random deviates with mean = μ, std dev = σ. |
private int |
mode
mode determines how values are generated. |
private double |
mu
Mean for use with non-data-driven modes. |
private RandomDataImpl |
randomData
RandomDataImpl to use for random data generation. |
static int |
REPLAY_MODE
Replay data from valuesFilePath. |
private double |
sigma
Standard deviation for use with GAUSSIAN_MODE. |
static int |
UNIFORM_MODE
Uniform random deviates with mean = μ. |
private URL |
valuesFileURL
URI to raw data values. |
Constructor Summary | |
---|---|
ValueServer()
Creates new ValueServer |
|
ValueServer(RandomDataImpl randomData)
Deprecated. use ValueServer(RandomGenerator) |
|
ValueServer(RandomGenerator generator)
Construct a ValueServer instance using a RandomGenerator as its source of random data. |
Method Summary | |
---|---|
void |
closeReplayFile()
Closes valuesFileURL after use in REPLAY_MODE. |
void |
computeDistribution()
Computes the empirical distribution using values from the file in valuesFileURL , using the default number of bins. |
void |
computeDistribution(int binCount)
Computes the empirical distribution using values from the file in valuesFileURL and binCount bins. |
void |
fill(double[] values)
Fills the input array with values generated using getNext() repeatedly. |
double[] |
fill(int length)
Returns an array of length length with values generated
using getNext() repeatedly. |
EmpiricalDistribution |
getEmpiricalDistribution()
Returns the EmpiricalDistribution used when operating in 0. |
int |
getMode()
Returns the data generation mode. |
double |
getMu()
Returns the mean used when operating in GAUSSIAN_MODE , EXPONENTIAL_MODE
or UNIFORM_MODE . |
double |
getNext()
Returns the next generated value, generated according to the mode value (see MODE constants). |
private double |
getNextDigest()
Gets a random value in DIGEST_MODE. |
private double |
getNextExponential()
Gets an exponentially distributed random value with mean = mu. |
private double |
getNextGaussian()
Gets a Gaussian distributed random value with mean = mu and standard deviation = sigma. |
private double |
getNextReplay()
Gets next sequential value from the valuesFileURL . |
private double |
getNextUniform()
Gets a uniformly distributed random value with mean = mu. |
double |
getSigma()
Returns the standard deviation used when operating in GAUSSIAN_MODE . |
URL |
getValuesFileURL()
Returns the URL for the file used to build the empirical distribution when using DIGEST_MODE . |
void |
reSeed(long seed)
Reseeds the random data generator. |
void |
resetReplayFile()
Resets REPLAY_MODE file pointer to the beginning of the valuesFileURL . |
void |
setMode(int mode)
Sets the data generation mode. |
void |
setMu(double mu)
Sets the mean used in data generation. |
void |
setSigma(double sigma)
Sets the standard deviation used in GAUSSIAN_MODE . |
void |
setValuesFileURL(String url)
Sets the values file URL using a string
URL representation. |
void |
setValuesFileURL(URL url)
Sets the the values file URL . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int DIGEST_MODE
public static final int REPLAY_MODE
public static final int UNIFORM_MODE
public static final int EXPONENTIAL_MODE
public static final int GAUSSIAN_MODE
public static final int CONSTANT_MODE
private int mode
private URL valuesFileURL
private double mu
private double sigma
private EmpiricalDistribution empiricalDistribution
private BufferedReader filePointer
private final RandomDataImpl randomData
Constructor Detail |
---|
public ValueServer()
public ValueServer(RandomDataImpl randomData)
ValueServer(RandomGenerator)
randomData
- the RandomDataImpl instance used to source random datapublic ValueServer(RandomGenerator generator)
generator
- source of random dataMethod Detail |
---|
public double getNext() throws IOException, MathIllegalStateException, MathIllegalArgumentException
IOException
- in REPLAY_MODE if a file I/O error occurs
MathIllegalStateException
- if mode is not recognized
MathIllegalArgumentException
- if the underlying random generator thwrows onepublic void fill(double[] values) throws IOException, MathIllegalStateException, MathIllegalArgumentException
values
- array to be filled
IOException
- in REPLAY_MODE if a file I/O error occurs
MathIllegalStateException
- if mode is not recognized
MathIllegalArgumentException
- if the underlying random generator thwrows onepublic double[] fill(int length) throws IOException, MathIllegalStateException, MathIllegalArgumentException
length
with values generated
using getNext() repeatedly.
length
- length of output array
IOException
- in REPLAY_MODE if a file I/O error occurs
MathIllegalStateException
- if mode is not recognized
MathIllegalArgumentException
- if the underlying random generator thwrows onepublic void computeDistribution() throws IOException, ZeroException, NullArgumentException
valuesFileURL
, using the default number of bins.
valuesFileURL
must exist and be
readable by *this at runtime.
This method must be called before using getNext()
with mode = DIGEST_MODE
IOException
- if an I/O error occurs reading the input file
NullArgumentException
- if the valuesFileURL
has not been set
ZeroException
- if URL contains no datapublic void computeDistribution(int binCount) throws NullArgumentException, IOException, ZeroException
valuesFileURL
and binCount
bins.
valuesFileURL
must exist and be readable by this process
at runtime.
This method must be called before using getNext()
with mode = DIGEST_MODE
binCount
- the number of bins used in computing the empirical
distribution
NullArgumentException
- if the valuesFileURL
has not been set
IOException
- if an error occurs reading the input file
ZeroException
- if URL contains no datapublic int getMode()
the class javadoc
for description of the valid values of this property.
public void setMode(int mode)
mode
- New value of the data generation mode.public URL getValuesFileURL()
DIGEST_MODE
.
public void setValuesFileURL(String url) throws MalformedURLException
values file URL
using a string
URL representation.
url
- String representation for new valuesFileURL.
MalformedURLException
- if url is not well formedpublic void setValuesFileURL(URL url)
values file URL
.
The values file must be an ASCII text file containing one valid numeric entry per line.
url
- URL of the values file.public EmpiricalDistribution getEmpiricalDistribution()
EmpiricalDistribution
used when operating in 0.
computeDistribution()
public void resetReplayFile() throws IOException
valuesFileURL
.
IOException
- if an error occurs opening the filepublic void closeReplayFile() throws IOException
valuesFileURL
after use in REPLAY_MODE.
IOException
- if an error occurs closing the filepublic double getMu()
GAUSSIAN_MODE
, EXPONENTIAL_MODE
or UNIFORM_MODE
. When operating in CONSTANT_MODE
, this is the constant
value always returned. Calling computeDistribution()
sets this value to the
overall mean of the values in the values file
.
public void setMu(double mu)
mean
used in data generation. Note that calling this method
after computeDistribution()
has been called will have no effect on data
generated in DIGEST_MODE
.
mu
- new Mean value.public double getSigma()
GAUSSIAN_MODE
.
Calling computeDistribution()
sets this value to the overall standard
deviation of the values in the values file
. This
property has no effect when the data generation mode is not
GAUSSIAN_MODE
.
GAUSSIAN_MODE
.public void setSigma(double sigma)
standard deviation
used in GAUSSIAN_MODE
.
sigma
- New standard deviation.public void reSeed(long seed)
seed
- Value with which to reseed the RandomDataImpl
used to generate random data.private double getNextDigest() throws MathIllegalStateException
Preconditions:
computeDistribution()
must have completed successfully; otherwise an
IllegalStateException
will be thrown
MathIllegalStateException
- if digest has not been initializedprivate double getNextReplay() throws IOException, MathIllegalStateException
valuesFileURL
.
Throws an IOException if the read fails.
This method will open the valuesFileURL
if there is no
replay file open.
The valuesFileURL
will be closed and reopened to wrap around
from EOF to BOF if EOF is encountered. EOFException (which is a kind of
IOException) may still be thrown if the valuesFileURL
is
empty.
IOException
- if there is a problem reading from the file
MathIllegalStateException
- if URL contains no data
NumberFormatException
- if an invalid numeric string is
encountered in the fileprivate double getNextUniform() throws MathIllegalArgumentException
MathIllegalArgumentException
- if the underlying random generator thwrows oneprivate double getNextExponential() throws MathIllegalArgumentException
MathIllegalArgumentException
- if the underlying random generator thwrows oneprivate double getNextGaussian() throws MathIllegalArgumentException
MathIllegalArgumentException
- if the underlying random generator thwrows one
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |