Class LogCauchyDistribution
java.lang.Object
com.github.tommyettinger.random.distribution.Distribution
com.github.tommyettinger.random.distribution.LogCauchyDistribution
- All Implemented Interfaces:
Externalizable
,Serializable
A two-parameter distribution with range from 0 (exclusive) to positive infinity.
This is mostly here because the shape of its graph is so strange; this could allow it to be useful for modeling
especially unusual probabilities. Or for games, to really mess with attempts to figure out the program internals.
-
Field Summary
Fields inherited from class com.github.tommyettinger.random.distribution.Distribution
generator
-
Constructor Summary
ConstructorDescriptionUses anAceRandom
, alpha = 0.0, sigma = 1.0 .LogCauchyDistribution
(double mu, double sigma) Uses anAceRandom
and the given mu and sigma.LogCauchyDistribution
(EnhancedRandom generator, double mu, double sigma) Uses the given EnhancedRandom directly. -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Returns an exact copy of this Distribution, with the same parameters and a copy of the generator.double
Gets the maximum possible value of distributed random numbers.double
getMean()
Gets the mean of distributed random numbers.double
Gets the median of distributed random numbers.double
Gets the minimum possible value of distributed random numbers.double[]
getMode()
Gets the mode(s) of distributed random numbers.double
getMu()
double
Gets the value of parameter "A" as a double.double
Gets the value of parameter "B" as a double.double
getSigma()
getTag()
Gets the tag used to identify this type of Distribution, as a String.double
Gets the variance of distributed random numbers.double
Generates a double using this distribution.static double
sample
(EnhancedRandom generator, double mu, double sigma) boolean
setParameters
(double a, double b, double c) Sets all parameters and returns true if they are valid, otherwise leaves parameters unchanged and returns false.Methods inherited from class com.github.tommyettinger.random.distribution.Distribution
equals, getParameterC, readExternal, stringDeserialize, stringDeserialize, stringSerialize, stringSerialize, toString, writeExternal
-
Constructor Details
-
LogCauchyDistribution
public LogCauchyDistribution()Uses anAceRandom
, alpha = 0.0, sigma = 1.0 . -
LogCauchyDistribution
public LogCauchyDistribution(double mu, double sigma) Uses anAceRandom
and the given mu and sigma. -
LogCauchyDistribution
Uses the given EnhancedRandom directly. Uses the given mu and sigma.
-
-
Method Details
-
getTag
Description copied from class:Distribution
Gets the tag used to identify this type of Distribution, as a String. This tag should be unique. Unlike the tags for EnhancedRandom types, the names here can vary in length.- Specified by:
getTag
in classDistribution
- Returns:
- a unique String identifier for this type of Distribution; must be non-null, can be any non-zero length
-
copy
Description copied from class:Distribution
Returns an exact copy of this Distribution, with the same parameters and a copy of the generator.- Specified by:
copy
in classDistribution
- Returns:
- an exact copy of this Distribution
-
getMu
public double getMu() -
getSigma
public double getSigma() -
getParameterA
public double getParameterA()Description copied from class:Distribution
Gets the value of parameter "A" as a double. This corresponds to parameter "A" inDistribution.setParameters(double, double, double)
; it is usually called by some other name in the generator, and may not be stored as a double internally.
This defaults to always returningDouble.NaN
, but any parameters a distribution actually uses should be overridden to return the actual parameter, which is almost certainly not going to be NaN. If a getParameter method returns NaN, you can generally safely assume that the parameter is not used by this distribution.- Overrides:
getParameterA
in classDistribution
- Returns:
- the value of parameter "A" as a double.
-
getParameterB
public double getParameterB()Description copied from class:Distribution
Gets the value of parameter "B" as a double. This corresponds to parameter "B" inDistribution.setParameters(double, double, double)
; it is usually called by some other name in the generator, and may not be stored as a double internally.
This defaults to always returningDouble.NaN
, but any parameters a distribution actually uses should be overridden to return the actual parameter, which is almost certainly not going to be NaN. If a getParameter method returns NaN, you can generally safely assume that the parameter is not used by this distribution.- Overrides:
getParameterB
in classDistribution
- Returns:
- the value of parameter "B" as a double.
-
getMaximum
public double getMaximum()Description copied from class:Distribution
Gets the maximum possible value of distributed random numbers.- Specified by:
getMaximum
in classDistribution
- Returns:
- the maximum possible value of distributed random numbers
-
getMean
public double getMean()Description copied from class:Distribution
Gets the mean of distributed random numbers.- Specified by:
getMean
in classDistribution
- Returns:
- the mean of distributed random numbers
-
getMedian
public double getMedian()Description copied from class:Distribution
Gets the median of distributed random numbers.- Specified by:
getMedian
in classDistribution
- Returns:
- the median of distributed random numbers
-
getMinimum
public double getMinimum()Description copied from class:Distribution
Gets the minimum possible value of distributed random numbers.- Specified by:
getMinimum
in classDistribution
- Returns:
- the minimum possible value of distributed random numbers
-
getMode
public double[] getMode()Description copied from class:Distribution
Gets the mode(s) of distributed random numbers.- Specified by:
getMode
in classDistribution
- Returns:
- the mode(s) of distributed random numbers
-
getVariance
public double getVariance()Description copied from class:Distribution
Gets the variance of distributed random numbers.- Specified by:
getVariance
in classDistribution
- Returns:
- the variance of distributed random numbers
-
setParameters
public boolean setParameters(double a, double b, double c) Sets all parameters and returns true if they are valid, otherwise leaves parameters unchanged and returns false.- Specified by:
setParameters
in classDistribution
- Parameters:
a
- mu; must not be NaNb
- sigma; should be greater than 0.0c
- ignored- Returns:
- true if the parameters given are valid and will be used
-
nextDouble
public double nextDouble()Description copied from class:Distribution
Generates a double using this distribution.- Specified by:
nextDouble
in classDistribution
- Returns:
- a distributed double
-
sample
-