MATH-815
Added method that was missing in the original commit: "getDimensions()", renamed to "getDimension()". git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1400017 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a355d8c20a
commit
bdd5b45cf7
|
@ -31,7 +31,7 @@ public abstract class AbstractMultivariateRealDistribution
|
|||
/** RNG instance used to generate samples from the distribution. */
|
||||
protected final RandomGenerator random;
|
||||
/** The number of dimensions or columns in the multivariate distribution. */
|
||||
private final int numDimensions;
|
||||
private final int dimension;
|
||||
|
||||
/**
|
||||
* @param rng Random number generator.
|
||||
|
@ -40,7 +40,7 @@ public abstract class AbstractMultivariateRealDistribution
|
|||
protected AbstractMultivariateRealDistribution(RandomGenerator rng,
|
||||
int n) {
|
||||
random = rng;
|
||||
numDimensions = n;
|
||||
dimension = n;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
|
@ -48,14 +48,9 @@ public abstract class AbstractMultivariateRealDistribution
|
|||
random.setSeed(seed);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of dimensions (i.e. the number of random variables) of
|
||||
* the distribution.
|
||||
*
|
||||
* @return the number of dimensions.
|
||||
*/
|
||||
public int getDimensions() {
|
||||
return numDimensions;
|
||||
/** {@inheritDoc} */
|
||||
public int getDimension() {
|
||||
return dimension;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
|
@ -67,7 +62,7 @@ public abstract class AbstractMultivariateRealDistribution
|
|||
throw new NotStrictlyPositiveException(LocalizedFormats.NUMBER_OF_SAMPLES,
|
||||
sampleSize);
|
||||
}
|
||||
final double[][] out = new double[sampleSize][numDimensions];
|
||||
final double[][] out = new double[sampleSize][dimension];
|
||||
for (int i = 0; i < sampleSize; i++) {
|
||||
out[i] = sample();
|
||||
}
|
||||
|
|
|
@ -175,7 +175,7 @@ public class MultivariateNormalDistribution
|
|||
|
||||
/** {@inheritDoc} */
|
||||
public double density(final double[] vals) throws DimensionMismatchException {
|
||||
final int dim = getDimensions();
|
||||
final int dim = getDimension();
|
||||
if (vals.length != dim) {
|
||||
throw new DimensionMismatchException(vals.length, dim);
|
||||
}
|
||||
|
@ -192,7 +192,7 @@ public class MultivariateNormalDistribution
|
|||
* @return the standard deviations.
|
||||
*/
|
||||
public double[] getStandardDeviations() {
|
||||
final int dim = getDimensions();
|
||||
final int dim = getDimension();
|
||||
final double[] std = new double[dim];
|
||||
final double[][] s = covarianceMatrix.getData();
|
||||
for (int i = 0; i < dim; i++) {
|
||||
|
@ -203,7 +203,7 @@ public class MultivariateNormalDistribution
|
|||
|
||||
/** {@inheritDoc} */
|
||||
public double[] sample() {
|
||||
final int dim = getDimensions();
|
||||
final int dim = getDimension();
|
||||
final double[] normalVals = new double[dim];
|
||||
|
||||
for (int i = 0; i < dim; i++) {
|
||||
|
|
|
@ -49,6 +49,15 @@ public interface MultivariateRealDistribution {
|
|||
*/
|
||||
void reseedRandomGenerator(long seed);
|
||||
|
||||
/**
|
||||
* Gets the number of random variables of the distribution.
|
||||
* It is the size of the array returned by the {@link #sample() sample}
|
||||
* method.
|
||||
*
|
||||
* @return the number of variables.
|
||||
*/
|
||||
int getDimension();
|
||||
|
||||
/**
|
||||
* Generates a random value vector sampled from this distribution.
|
||||
*
|
||||
|
@ -63,6 +72,8 @@ public interface MultivariateRealDistribution {
|
|||
* @return an array representing the random samples.
|
||||
* @throws org.apache.commons.math3.exception.NotStrictlyPositiveException
|
||||
* if {@code sampleSize} is not positive.
|
||||
*
|
||||
* @see #sample()
|
||||
*/
|
||||
double[][] sample(int sampleSize) throws NotStrictlyPositiveException;
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public class MultivariateNormalDistributionTest {
|
|||
final MultivariateNormalDistribution d = new MultivariateNormalDistribution(mu, sigma);
|
||||
|
||||
final RealMatrix s = d.getCovariances();
|
||||
final int dim = d.getDimensions();
|
||||
final int dim = d.getDimension();
|
||||
for (int i = 0; i < dim; i++) {
|
||||
for (int j = 0; j < dim; j++) {
|
||||
Assert.assertEquals(sigma[i][j], s.getEntry(i, j), 0);
|
||||
|
@ -78,7 +78,7 @@ public class MultivariateNormalDistributionTest {
|
|||
final int n = 500000;
|
||||
|
||||
final double[][] samples = d.sample(n);
|
||||
final int dim = d.getDimensions();
|
||||
final int dim = d.getDimension();
|
||||
final double[] sampleMeans = new double[dim];
|
||||
|
||||
for (int i = 0; i < samples.length; i++) {
|
||||
|
|
Loading…
Reference in New Issue