source: src/main/java/agents/anac/y2019/harddealer/math3/distribution/AbstractMultivariateRealDistribution.java

Last change on this file was 204, checked in by Katsuhide Fujita, 5 years ago

Fixed errors of ANAC2019 agents

  • Property svn:executable set to *
File size: 2.4 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package agents.anac.y2019.harddealer.math3.distribution;
18
19import agents.anac.y2019.harddealer.math3.exception.NotStrictlyPositiveException;
20import agents.anac.y2019.harddealer.math3.exception.util.LocalizedFormats;
21import agents.anac.y2019.harddealer.math3.random.RandomGenerator;
22
23/**
24 * Base class for multivariate probability distributions.
25 *
26 * @since 3.1
27 */
28public abstract class AbstractMultivariateRealDistribution
29 implements MultivariateRealDistribution {
30 /** RNG instance used to generate samples from the distribution. */
31 protected final RandomGenerator random;
32 /** The number of dimensions or columns in the multivariate distribution. */
33 private final int dimension;
34
35 /**
36 * @param rng Random number generator.
37 * @param n Number of dimensions.
38 */
39 protected AbstractMultivariateRealDistribution(RandomGenerator rng,
40 int n) {
41 random = rng;
42 dimension = n;
43 }
44
45 /** {@inheritDoc} */
46 public void reseedRandomGenerator(long seed) {
47 random.setSeed(seed);
48 }
49
50 /** {@inheritDoc} */
51 public int getDimension() {
52 return dimension;
53 }
54
55 /** {@inheritDoc} */
56 public abstract double[] sample();
57
58 /** {@inheritDoc} */
59 public double[][] sample(final int sampleSize) {
60 if (sampleSize <= 0) {
61 throw new NotStrictlyPositiveException(LocalizedFormats.NUMBER_OF_SAMPLES,
62 sampleSize);
63 }
64 final double[][] out = new double[sampleSize][dimension];
65 for (int i = 0; i < sampleSize; i++) {
66 out[i] = sample();
67 }
68 return out;
69 }
70}
Note: See TracBrowser for help on using the repository browser.