/** * Uniform sampling of the given range. * * @param min Lower bound of the range. * @param max Upper bound of the range. * @return an initializer such that the features will be initialized with * values within the given range. * @throws org.apache.commons.math3.exception.NumberIsTooLargeException * if {@code min >= max}. */ public static FeatureInitializer uniform(final double min, final double max) { return randomize(new UniformRealDistribution(min, max), function(new Constant(0), 0, 0)); }
public Builder uniform(double lower, double upper, long duration, TimeUnit units) { final UniformRealDistribution distribution = new UniformRealDistribution(lower, upper); return add("uniform(" + lower + "," + upper + ")", () -> (long)distribution.sample(), duration, units); }
@Test public void logProbGraphLowerBoundIsNotNegativeInfinity() { DoubleVertex xMin = ConstantVertex.of(lowerBound); DoubleVertex xMax = ConstantVertex.of(upperBound); UniformVertex uniformVertex = new UniformVertex(xMin, xMax); LogProbGraph logProbGraph = uniformVertex.logProbGraph(); LogProbGraphValueFeeder.feedValue(logProbGraph, xMin, xMin.getValue()); LogProbGraphValueFeeder.feedValue(logProbGraph, xMax, xMax.getValue()); LogProbGraphValueFeeder.feedValue(logProbGraph, uniformVertex, DoubleTensor.scalar(lowerBound)); UniformRealDistribution uniformRealDistribution = new UniformRealDistribution(lowerBound, upperBound); double expectedDensity = uniformRealDistribution.logDensity(lowerBound); assertThat(expectedDensity, not(equalTo(Double.NEGATIVE_INFINITY))); LogProbGraphContract.matchesKnownLogDensity(logProbGraph, expectedDensity); }
@Test public void testRealDistributionDeserializerWithUniformDistribution() throws Exception { String syntheticOptions = "{\"seed\":12345," + "\"delayDistribution\":{\"type\":\"uniform\",\"lower\":0,\"upper\":100}}"; SyntheticOptions sourceOptions = optionsFromString(syntheticOptions, SyntheticOptions.class); assertEquals( 0, (long) ((UniformRealDistribution) (sourceOptions.delayDistribution.getDistribution())) .getSupportLowerBound()); assertEquals( 100, (long) ((UniformRealDistribution) (sourceOptions.delayDistribution.getDistribution())) .getSupportUpperBound()); }
@Override public double sample() { return numGen.sample(); }
UniformRealDistribution ua = (UniformRealDistribution) a; UniformRealDistribution ub = (UniformRealDistribution) b; return ua.getSupportLowerBound() == ub.getSupportLowerBound() && ua.getSupportUpperBound() == ub.getSupportUpperBound(); } else if (c == WeibullDistribution.class) { WeibullDistribution wa = (WeibullDistribution) a;
/** * Uniform sampling of the given range. * * @param min Lower bound of the range. * @param max Upper bound of the range. * @param rng Random number generator used to draw samples from a * uniform distribution. * @return an initializer such that the features will be initialized with * values within the given range. * @throws org.apache.commons.math3.exception.NumberIsTooLargeException * if {@code min >= max}. */ public static FeatureInitializer uniform(final RandomGenerator rng, final double min, final double max) { return randomize(new UniformRealDistribution(rng, min, max), function(new Constant(0), 0, 0)); }
/** * @param low Ibid. * @param high Ibid. * @return Ibid. */ public double nextUniform(double low, double high) { if (low == high) return low; else { return new UniformRealDistribution(randomGenerator, low, high).sample(); } }
UniformRealDistribution ua = (UniformRealDistribution) a; UniformRealDistribution ub = (UniformRealDistribution) b; return ua.getSupportLowerBound() == ub.getSupportLowerBound() && ua.getSupportUpperBound() == ub.getSupportUpperBound(); } else if (c == WeibullDistribution.class) { WeibullDistribution wa = (WeibullDistribution) a;
break; case UNIFORM: distribution = new UniformRealDistribution(schema.getStartDouble(), schema.getEndDouble()); break; case DISCRETE_UNIFORM:
public BM(int numClusters, int dimension, long randomSeed) { this.numClusters = numClusters; this.dimension = dimension; this.distributions = new BernoulliDistribution[numClusters][dimension]; this.mixtureCoefficients = new double[numClusters]; Arrays.fill(mixtureCoefficients,1.0/numClusters); this.logMixtureCoefficients = new double[numClusters]; Arrays.fill(logMixtureCoefficients,Math.log(1.0/numClusters)); Random random = new Random(randomSeed); RandomGenerator randomGenerator = RandomGeneratorFactory.createRandomGenerator(random); UniformRealDistribution uniform = new UniformRealDistribution(randomGenerator, 0.25,0.75); for (int k=0;k<numClusters;k++){ for (int d=0;d<dimension;d++){ double p = uniform.sample(); distributions[k][d] = new BernoulliDistribution(p); } } this.logClusterConditioinalForEmpty = new double[numClusters]; updateLogClusterConditioinalForEmpty(); this.names = new ArrayList<>(dimension); for (int d=0;d<dimension;d++){ names.add(""+d); } }
} else if (c == UniformRealDistribution.class) { UniformRealDistribution u = (UniformRealDistribution) d; j.writeNumberField("lower", u.getSupportLowerBound()); j.writeNumberField("upper", u.getSupportUpperBound()); } else if (c == WeibullDistribution.class) { WeibullDistribution wb = (WeibullDistribution) d;
new UniformRealDistribution(new JDKRandomGenerator(100), -minDelta, minDelta);
public double evaluate(Context context) { RandomGenerator randomGenerator = RandomUtil.getInstance().getRandomGenerator(); double e1 = getExpressions().get(0).evaluate(context); double e2 = getExpressions().get(1).evaluate(context); return new UniformRealDistribution(randomGenerator, e1, e2).sample(); }
} else if (c == UniformRealDistribution.class) { UniformRealDistribution u = (UniformRealDistribution) d; j.writeNumberField("lower", u.getSupportLowerBound()); j.writeNumberField("upper", u.getSupportUpperBound()); } else if (c == WeibullDistribution.class) { WeibullDistribution wb = (WeibullDistribution) d;
/** * Creates new uniform pseudo random number generator. * * @param min minimum value * @param max maximum value */ public UniformDistr(double min, double max) { numGen = new UniformRealDistribution(min, max); }
public double evaluate(Context context) { RandomGenerator randomGenerator = RandomUtil.getInstance().getRandomGenerator(); double e1 = getExpressions().get(0).evaluate(context); double e2 = getExpressions().get(1).evaluate(context); return new UniformRealDistribution(randomGenerator, e1, e2).sample(); }
/** * ContinuousParameterSpace with uniform distribution between the minimum and maximum values * * @param min Minimum value that can be generated * @param max Maximum value that can be generated */ public ContinuousParameterSpace(double min, double max) { this(new UniformRealDistribution(min, max)); }
/** * Creates new uniform pseudo random number generator. * * @param min minimum value (inclusive) * @param max maximum value (exclusive) * @param seed simulation seed to be used */ public UniformDistr(double min, double max, long seed) { super(new UniformRealDistribution(min, max), seed); applyAntitheticVariates = false; }
/** * ContinuousParameterSpace with uniform distribution between the minimum and maximum values * * @param min Minimum value that can be generated * @param max Maximum value that can be generated */ public ContinuousParameterSpace(double min, double max) { this(new UniformRealDistribution(min, max)); }