MATH-1598: Class is not used anymore within "Commons Math".
Functionality is available from "Commons RNG".
This commit is contained in:
parent
456de1bf98
commit
536ee3f645
|
@ -1,58 +0,0 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.apache.commons.math4.legacy.random;
|
||||
|
||||
import org.apache.commons.math4.legacy.core.jdkmath.AccurateMath;
|
||||
import org.apache.commons.rng.UniformRandomProvider;
|
||||
|
||||
/**
|
||||
* This class implements a normalized uniform random generator.
|
||||
*
|
||||
* <p>
|
||||
* It generates values from a uniform distribution with mean
|
||||
* equal to 0 and standard deviation equal to 1.
|
||||
* Generated values fall in the range \( [-\sqrt{3}, +\sqrt{3}] \).
|
||||
* </p>
|
||||
*
|
||||
* @since 1.2
|
||||
*/
|
||||
public class UniformRandomGenerator implements NormalizedRandomGenerator {
|
||||
/** Square root of three. */
|
||||
private static final double SQRT3 = AccurateMath.sqrt(3);
|
||||
/** Underlying generator. */
|
||||
private final UniformRandomProvider generator;
|
||||
|
||||
/**
|
||||
* Creates a new generator.
|
||||
*
|
||||
* @param generator Underlying random generator.
|
||||
*/
|
||||
public UniformRandomGenerator(UniformRandomProvider generator) {
|
||||
this.generator = generator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a random scalar with zero mean and unit standard deviation.
|
||||
*
|
||||
* @return a random scalar in the range \( [-\sqrt{3}, +\sqrt{3}] \).
|
||||
*/
|
||||
@Override
|
||||
public double nextNormalizedDouble() {
|
||||
return SQRT3 * (2 * generator.nextDouble() - 1);
|
||||
}
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
//Licensed to the Apache Software Foundation (ASF) under one
|
||||
//or more contributor license agreements. See the NOTICE file
|
||||
//distributed with this work for additional information
|
||||
//regarding copyright ownership. The ASF licenses this file
|
||||
//to you under the Apache License, Version 2.0 (the
|
||||
//"License"); you may not use this file except in compliance
|
||||
//with the License. You may obtain a copy of the License at
|
||||
|
||||
//http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
//Unless required by applicable law or agreed to in writing,
|
||||
//software distributed under the License is distributed on an
|
||||
//"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
//KIND, either express or implied. See the License for the
|
||||
//specific language governing permissions and limitations
|
||||
//under the License.
|
||||
|
||||
package org.apache.commons.math4.legacy.random;
|
||||
|
||||
import org.apache.commons.rng.UniformRandomProvider;
|
||||
import org.apache.commons.rng.simple.RandomSource;
|
||||
import org.apache.commons.math4.legacy.stat.StatUtils;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
public class UniformRandomGeneratorTest {
|
||||
|
||||
@Test
|
||||
public void testMeanAndStandardDeviation() {
|
||||
final UniformRandomProvider rg = RandomSource.create(RandomSource.ISAAC, 17399225432L);
|
||||
UniformRandomGenerator generator = new UniformRandomGenerator(rg);
|
||||
double[] sample = new double[10000];
|
||||
for (int i = 0; i < sample.length; ++i) {
|
||||
sample[i] = generator.nextNormalizedDouble();
|
||||
}
|
||||
Assert.assertEquals(0.0, StatUtils.mean(sample), 0.07);
|
||||
Assert.assertEquals(1.0, StatUtils.variance(sample), 0.02);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue