Example usage for org.apache.commons.math3.distribution UniformRealDistribution UniformRealDistribution

List of usage examples for org.apache.commons.math3.distribution UniformRealDistribution UniformRealDistribution

Introduction

In this page you can find the example usage for org.apache.commons.math3.distribution UniformRealDistribution UniformRealDistribution.

Prototype

public UniformRealDistribution(double lower, double upper) throws NumberIsTooLargeException 

Source Link

Document

Create a uniform real distribution using the given lower and upper bounds.

Usage

From source file:edu.uiowa.javatm.UtilsTestDrive.java

public static void main(String[] args) throws IOException {

    double tau = 0.01;
    UniformRealDistribution uniform = new UniformRealDistribution(-1 * tau, tau);
    System.out.println(uniform.sample());

    /*/*from w ww  .j  a va  2  s.  c  o m*/
     * 
      int a = +0;
      int b = +0;
      System.out.println(a/b);
            
      String asFile = "/Users/zhiyzuo/Documents/java-topic-model/data/AS.csv";
      ArrayList<int[]> AS = Utils.readAS(asFile);
      System.out.println(Arrays.deepToString(AS.toArray()));
            
    // random number genrator
    final Random random = new Random();
       System.out.println(random.ints(1, 0, 10).toArray()[0]);
            
      String asFile = "/Users/zhiyzuo/Documents/java-topic-model/data/AS.csv";
      ArrayList<int[]> AS = Utils.readAS(asFile);
      System.out.println(Arrays.deepToString(AS.toArray()));
    /*
     * 
    double[][] mydoubleArray = new double [][] { { 1, 2.},
                               { 0.02, 0.12},
                               { 4.97, 3.56} };
    Utils.write2DArray(mydoubleArray, "/Users/zhiyzuo/Desktop/test.csv");
            
    String[][] myStringArray = new String [][] { { "X0", "Y0"},
                               { "X1", "Y1"},
                               { "X2", "Y2"},
                               { "X3", "Y3"},
                               { "X4", "Y4"} };
    Utils.write2DArray(myStringArray, "/Users/zhiyzuo/Desktop/test.csv");
            
    int[][] array1 = {{1,2,3},{4,5,6},{7,8,9}};
    System.out.println("Test getColumn()");
    System.out.println(Arrays.toString(Utils.getColumn(array1, 0)));
            
    int[] array2 = {1,1,2,3,2,3,2};
    System.out.println("Test find()");
    System.out.println(Utils.find(array2, 2).toString());
            
    double[] array3 = {0.25, 0.3, 0.15, 0.2, 0.1};
    System.out.println("Test sortIndex(double[])");
    int[] sortedIndices = Utils.sortIndex(array3);
    double[] array3_sorted = new double[array3.length];
    for (int i = 0; i < array3.length; i++) {
    array3_sorted[i] = array3[sortedIndices[i]];
    }
    System.out.println(Arrays.toString(array3_sorted));
    */

    /*
    System.out.println("Test _sum()");
    double sum_ = Utils._sum(array3);
    System.out.println("Sum of array3 is: " + sum_);
            
    double[] array4 = {0.5, 0.7, 0.8};
    System.out.println("Test _normalize()");
    double[] array4_normed = Utils._normalize(array4);
    System.out.println("Normalized array4 is: " + Arrays.toString(array4_normed));
    */

    /*
    double[] array4 = {0.4, 0.05, 0.1};
    System.out.println("Test sample()");
    System.out.println("Probablity List: " + Arrays.toString(array4));
    int[] choices = new int[10];
    for (int i = 0; i < 10; i++) {
    choices[i] = Utils.sample(array4);
    }
    System.out.println(Arrays.toString(choices));
    /*
            
            
    .*
    String vocFileName = "../data/test_mat.csv.clabel";
    System.out.println("Test readVocabulary()");
    String[] vocArray = Utils.readVocabulary(vocFileName);
    System.out.println(Arrays.toString(vocArray));
    */

    /*
     String docFileName = "../data/WD.csv";
     System.out.println("Test readDocFile()");
     int[][] WD = Utils.readDocFile(docFileName);
     int[] DS = Utils.getColumn(WD, 0);
     int[] WS = Utils.getColumn(WD, 1);
     System.out.println(Arrays.deepToString(WD));
     System.out.println(Arrays.toString(DS));
     System.out.println(Arrays.toString(WS));
     System.out.println(DS[DS.length-1] + 1);
     */

    /*
    int[][] DA = Utils.readDA("data/DA.csv");
    System.out.println(Arrays.deepToString(DA));
            
    for (int j = 0; j < DA.length; j++) {
      System.out.println(j + " " + Arrays.toString(Utils.nonZeroIndex(DA[j])));
    }
    */

    /*
     double[][] citationMatrix = Utils.readCitationFile("../data/doc1Citation.csv");
     System.out.println(Arrays.deepToString(citationMatrix));
             
     double[] doubleArray = new double[] {1, 2, 3, 4};
     System.out.println("Mean of " + Arrays.toString(doubleArray) + " is: " + Utils.mean(doubleArray));
     System.out.println("Variance of " + Arrays.toString(doubleArray) + " is: " + Utils.variance(doubleArray));
     */

}

From source file:com.ibm.og.util.Distributions.java

/**
 * Creates a uniform distribution with a range of [average - spread, average + spread].
 * //from w ww.ja  v  a2s .c o m
 * @param average the average value of this distribution
 * @param spread distance from the average
 * @return a uniform distribution instance
 * @throws IllegalArgumentException if average or spread are negative, or if average - spread is
 *         negative
 */
public static Distribution uniform(final double average, final double spread) {
    checkArgument(average >= 0.0, "average must be >= 0.0 [%s]", average);
    checkArgument(spread >= 0.0, "spread must be >= 0.0 [%s]", spread);

    if (DoubleMath.fuzzyEquals(spread, 0.0, Distributions.ERR)) {
        return constant(average);
    }

    final double lower = average - spread;
    final double upper = average + spread;
    checkArgument(lower >= 0.0, "average - spread must be >= 0.0 [%s]", lower);
    final String s = String.format("UniformDistribution [average=%s, spread=%s]", average, spread);
    return new RealDistributionAdapter(new UniformRealDistribution(lower, upper), s);
}

From source file:it.cnr.isti.smartfed.papers.qbrokage.DatacenterGenerator.java

public DatacenterGenerator() {
    costPerMem = new UniformRealDistribution(0.01, 0.10);
    costPerSto = new UniformRealDistribution(0.0002, 0.0020);
    costPerSec = new UniformRealDistribution(0.10, 0.80); //not used, see below
    costPerBw = new UniformRealDistribution(0.001, 0.05);

    ramAmount = new UniformIntegerDistribution(512, 1024 * 16);
    bwAmount = new UniformIntegerDistribution(10 * 1024, 10 * 1024 * 1024);
    stoAmount = new UniformIntegerDistribution(4096, 10 * 1024 * 1024); // 10TB max
    coreAmount = new UniformIntegerDistribution(1, 8);
    mipsAmount = new UniformIntegerDistribution(1000, 25000);
}

From source file:adams.data.distribution.Uniform.java

/**
 * Returns the configured distribution.// w w w . java 2  s  . c  o m
 *
 * @return      the distribution
 */
@Override
public RealDistribution getRealDistribution() {
    return new UniformRealDistribution(m_LowerBound, m_UpperBound);
}

From source file:eu.crisis_economics.abm.model.parameters.ParameterUtils.java

/**
  * Create a model parameter with a double value drawn from a
  * uniform distribution./*from w w  w .  j  a v  a 2  s.  co  m*/
  * 
  * @param parameterName
  *        The name of the model parameter.
  * @param minParameterValue
  *        The minimum value of the paremeter.
  * @param maxParameterValue
  *        The maximum value of the parameter.
  */
public static ModelParameter<?> createParameterWithUniformDistribution(final String parameterName,
        final double minParameterValue, final double maxParameterValue) {
    Preconditions.checkArgument(minParameterValue <= maxParameterValue);
    return new FromRealDistributionModelParameter(
            new UniformRealDistribution(minParameterValue, maxParameterValue), parameterName);
}

From source file:io.yields.math.framework.data.DataProvidersTest.java

@Explore(name = "check distributional properties of random numbers", dataProvider = DataProviders.FixedMersenneTwisterDataProvider.class, nrOfRuns = 10000)
@Exploration(name = "2D uniform samples", context = FunctionExplorerWithoutProperties.class, group = "data providers")
public void testRandomDistribution(Explorer<Pair> explorer) {
    KolmogorovSmirnovTest ksTest = new KolmogorovSmirnovTest();
    DescriptiveStatistics xStats = new DescriptiveStatistics();
    DescriptiveStatistics yStats = new DescriptiveStatistics();
    explorer.all().forEach(result -> {
        Pair pair = result.getFunctionOutcome().orElse(new Pair());
        xStats.addValue(pair.getX1());/*  w  ww. j ava2s .c  om*/
        yStats.addValue(pair.getX2());
    });
    DescriptiveStatistics cross = new DescriptiveStatistics();
    for (int i = 0; i < xStats.getN(); i++) {
        cross.addValue((xStats.getValues()[i] - .5) * (yStats.getValues()[i] - .5));
    }
    /**
     * x and y should be uniformly distributed
     */
    assertThat(ksTest.kolmogorovSmirnovStatistic(new UniformRealDistribution(0, 1), xStats.getValues()))
            .isEqualTo(0, Delta.delta(.015));
    assertThat(ksTest.kolmogorovSmirnovStatistic(new UniformRealDistribution(0, 1), yStats.getValues()))
            .isEqualTo(0, Delta.delta(.015));
    /**
     * and have zero correlation
     */
    assertThat(cross.getMean()).isEqualTo(0, Delta.delta(.05));
}

From source file:io.druid.benchmark.datagen.BenchmarkColumnValueGenerator.java

private void initDistribution() {
    BenchmarkColumnSchema.ValueDistribution distributionType = schema.getDistributionType();
    ValueType type = schema.getType();/*from w ww.ja v  a 2  s  . c  om*/
    List<Object> enumeratedValues = schema.getEnumeratedValues();
    List<Double> enumeratedProbabilities = schema.getEnumeratedProbabilities();
    List<Pair<Object, Double>> probabilities = new ArrayList<>();

    switch (distributionType) {
    case SEQUENTIAL:
        // not random, just cycle through numbers from start to end, or cycle through enumerated values if provided
        distribution = new SequentialDistribution(schema.getStartInt(), schema.getEndInt(),
                schema.getEnumeratedValues());
        break;
    case UNIFORM:
        distribution = new UniformRealDistribution(schema.getStartDouble(), schema.getEndDouble());
        break;
    case DISCRETE_UNIFORM:
        if (enumeratedValues == null) {
            enumeratedValues = new ArrayList<>();
            for (int i = schema.getStartInt(); i < schema.getEndInt(); i++) {
                Object val = convertType(i, type);
                enumeratedValues.add(val);
            }
        }
        // give them all equal probability, the library will normalize probabilities to sum to 1.0
        for (int i = 0; i < enumeratedValues.size(); i++) {
            probabilities.add(new Pair<>(enumeratedValues.get(i), 0.1));
        }
        distribution = new EnumeratedTreeDistribution<>(probabilities);
        break;
    case NORMAL:
        distribution = new NormalDistribution(schema.getMean(), schema.getStandardDeviation());
        break;
    case ROUNDED_NORMAL:
        NormalDistribution normalDist = new NormalDistribution(schema.getMean(), schema.getStandardDeviation());
        distribution = new RealRoundingDistribution(normalDist);
        break;
    case ZIPF:
        int cardinality;
        if (enumeratedValues == null) {
            Integer startInt = schema.getStartInt();
            cardinality = schema.getEndInt() - startInt;
            ZipfDistribution zipf = new ZipfDistribution(cardinality, schema.getZipfExponent());
            for (int i = 0; i < cardinality; i++) {
                probabilities.add(new Pair<>((Object) (i + startInt), zipf.probability(i)));
            }
        } else {
            cardinality = enumeratedValues.size();
            ZipfDistribution zipf = new ZipfDistribution(enumeratedValues.size(), schema.getZipfExponent());
            for (int i = 0; i < cardinality; i++) {
                probabilities.add(new Pair<>(enumeratedValues.get(i), zipf.probability(i)));
            }
        }
        distribution = new EnumeratedTreeDistribution<>(probabilities);
        break;
    case ENUMERATED:
        for (int i = 0; i < enumeratedValues.size(); i++) {
            probabilities.add(new Pair<>(enumeratedValues.get(i), enumeratedProbabilities.get(i)));
        }
        distribution = new EnumeratedTreeDistribution<>(probabilities);
        break;

    default:
        throw new UnsupportedOperationException("Unknown distribution type: " + distributionType);
    }

    if (distribution instanceof AbstractIntegerDistribution) {
        ((AbstractIntegerDistribution) distribution).reseedRandomGenerator(seed);
    } else if (distribution instanceof AbstractRealDistribution) {
        ((AbstractRealDistribution) distribution).reseedRandomGenerator(seed);
    } else if (distribution instanceof EnumeratedDistribution) {
        ((EnumeratedDistribution) distribution).reseedRandomGenerator(seed);
    }
}

From source file:es.csic.iiia.planes.generator.Generator.java

private void addTasks(DProblem p) {
    ArrayList<DTask> tasks = new ArrayList<DTask>();

    // Create the tasks, randomly located
    for (int i = 0; i < config.getNum_tasks(); i++) {
        DTask t = new DTask();
        t.setX(r.nextInt(p.getWidth()));
        t.setY(r.nextInt(p.getHeight()));
        tasks.add(t);/*from  w w w  .ja v a2 s  .com*/
        p.getOperators().get(r.nextInt(config.getNum_operators())).getTasks().add(t);
    }

    // Set task times. Use the crisis model for now.

    // How is it done?

    // 1.a Create a "base" uniform distribution between 0 and duration
    RealDistribution[] timeDistributions = new RealDistribution[config.getNum_crisis()];
    timeDistributions[0] = new UniformRealDistribution(0, config.getDuration());
    timeDistributions[0].reseedRandomGenerator(r.nextLong());

    // 1.b Create a "base" uniform distribution for the 2d space
    MultivariateRealDistribution[] spaceDistributions = new MultivariateRealDistribution[config
            .getNum_crisis()];
    spaceDistributions[0] = new MultivariateUniformDistribution(new double[] { 0, 0 },
            new double[] { p.getWidth(), p.getHeight() });
    spaceDistributions[0].reseedRandomGenerator(r.nextLong());

    // 2.a Create one gaussian distribution for each crisis, trying to
    //    spread them out through time.
    for (int i = 1; i < config.getNum_crisis(); i++) {
        double mean = r.nextDouble() * config.getDuration();
        double std = (config.getDuration() / (double) config.getNum_crisis()) * 0.05;
        timeDistributions[i] = new NormalDistribution(mean, std);
        timeDistributions[i].reseedRandomGenerator(r.nextLong());
    }

    // 2.b Create one distribution for each crisis
    for (int i = 1; i < config.getNum_crisis(); i++) {
        spaceDistributions[i] = config.getTaskDistributionFactory().buildDistribution(config, r);
    }

    // 3. Uniformly sample tasks from these distributions
    int i = 0;
    for (DTask t : tasks) {
        final int j = (int) (r.nextDouble() * (config.getNum_crisis()));
        t.setnCrisis(j);

        // Time sampling
        /** UNCOMMENT TO MAKE TIMES RANDOMLY DISTRIBUTED
        long time = (long)timeDistributions[i].sample();
        while (time < 0 || time > config.getDuration()) {
        time = (long)timeDistributions[i].sample();
        }
        */
        // Set all tasks to appear at the start of the simulation. To change
        // this, delete the 0 and replace it with the long variable "time"
        t.setTime(0);

        // Divide simulation space into (a x a) sized blocks
        final Location[][] blocks = Location.buildBlocks(config.getBlockSize(), config.getWidthRegions(),
                config.getHeightRegions());

        // Position sampling
        double[] position = spaceDistributions[j].sample();
        /*
        * Sample a point until its position is not conflicting with
        * any previous point positions (i.e. it is not located in the same block
        * as a previously assigned point), AND it is a valid position
        * that falls inside the simulation space.
        */

        while (invalidPosition(position[0], position[1], p)) {
            //|| blockConflict(blocks, position[0], position[1], tasks, i)) {
            position = spaceDistributions[j].sample();
        }
        //            int k = 0;
        //            for (DTask t2: tasks) {
        //                if(k < i) {
        //                    // Check if the position sampled is within the simulation space
        //                    while (invalidPosition(position[0], position[1], p)
        //                            || sameBlocks(blocks, position[0], position[1], t2)) {
        //                        position = spaceDistributions[j].sample();
        //                    }
        //                }
        //                else {
        //                    while (invalidPosition(position[0], position[1], p)) {
        //                        position = spaceDistributions[j].sample();
        //                    }
        //                }
        //                k++;
        //            }
        //            while (invalidPosition(position[0], position[1], p)) {
        //                position = spaceDistributions[j].sample();
        //            }

        //            int posX;
        //            int posY;
        //            if (i < blocks[0].length) {
        //                posX = (int)blocks[0][i].getX();
        //                posY = (int)blocks[0][i].getY();
        //            }
        //            else {
        //                posX = (int)blocks[1][0].getX();
        //                posY = (int)blocks[1][0].getY();
        //            }

        t.setX((int) position[0]);
        t.setY((int) position[1]);

        //            t.setX(posX);
        //            t.setY(posY);
        i++;
    }

    // 4. Debug stuff
    //printTaskHistogram(tasks);
}

From source file:it.cnr.isti.smartfed.papers.qbrokage.BrokageLockin.java

public DatacenterGeneratorCost() {
    costPerMem = new UniformRealDistribution(0.01, 0.10);
    costPerSto = new UniformRealDistribution(0.0002, 0.0020);
    costPerSec = new UniformRealDistribution(0.10, 0.80); //not used, see below
    costPerBw = new UniformRealDistribution(0.001, 0.05);

    ramAmount = new UniformIntegerDistribution(512, 1024 * 16);
    bwAmount = new UniformIntegerDistribution(10 * 1024, 10 * 1024 * 1024);
    stoAmount = new UniformIntegerDistribution(4096, 10 * 1024 * 1024); // 10TB max
    coreAmount = new UniformIntegerDistribution(1, 8);
    mipsAmount = new UniformIntegerDistribution(1000, 25000);

    this.seed = 1;
}

From source file:com.github.aptd.simulation.datamodel.CXMLReader.java

@Override
@SuppressWarnings("unchecked")
public final IExperiment get(final IFactory p_factory, final String p_datamodel, final long p_simulationsteps,
        final boolean p_parallel, final String p_timemodel,
        final Supplier<RealDistribution> p_platformchangedurationdistributionsupplier,
        final int p_numberofpassengers, final double p_lightbarrierminfreetime, final double p_delayseconds) {
    try (final FileInputStream l_stream = new FileInputStream(p_datamodel)) {
        final Asimov l_model = (Asimov) m_context.createUnmarshaller().unmarshal(l_stream);

        // time definition

        final Instant l_starttime = ZonedDateTime.now(ZoneId.systemDefault())
                .with(ChronoField.CLOCK_HOUR_OF_DAY, 8).with(ChronoField.MINUTE_OF_HOUR, 45)
                .with(ChronoField.SECOND_OF_MINUTE, 0).with(ChronoField.NANO_OF_SECOND, 0)
                .with(ChronoField.DAY_OF_MONTH, 3).with(ChronoField.MONTH_OF_YEAR, 10)
                .with(ChronoField.YEAR, 2017).toInstant();

        final ITime l_time = "jump".equals(p_timemodel) ? new CJumpTime(l_starttime, p_simulationsteps)
                : new CStepTime(l_starttime, Duration.ofSeconds(1), p_simulationsteps);

        final CMessenger l_messenger = new CMessenger();

        final Set<IAction> l_actionsfrompackage = CCommon.actionsFromPackage().collect(Collectors.toSet());

        // asl agent definition
        final Map<String, String> l_agentdefs = agents(l_model.getAi());

        // macro (train-network) and microscopic model
        final Map<String, IPlatform<?>> l_platform = platform(l_model.getNetwork(), l_agentdefs, p_factory,
                l_time);//  w w w  .  j a  va 2  s  . co m
        final Map<String, IStation<?>> l_station = station(l_model.getNetwork(), l_agentdefs, p_factory, l_time,
                l_platform);
        final Pair<Map<String, ITrain<?>>, Map<String, IDoor<?>>> l_train = train(l_model.getNetwork(),
                l_agentdefs, p_factory, l_time, p_lightbarrierminfreetime);

        final Map<String, IElement<?>> l_agents = new HashMap<>();
        l_agents.putAll(l_platform);
        l_agents.putAll(l_station);
        l_agents.putAll(l_train.getLeft());
        l_agents.putAll(l_train.getRight());

        final CExperiment l_experiment = new CExperiment(p_simulationsteps, p_parallel, IStatistic.EMPTY,
                l_agents, l_time, l_messenger);

        // @todo create passengersources and their passenger generators according to scenario definition

        final IElement.IGenerator<IPassenger<?>> l_passengergenerator = passengergenerator(p_factory,
                "+!activate <-\n    state/transition\n.", l_actionsfrompackage, l_time);

        l_experiment.addAgent("passengersource_test",
                passengersourcegenerator(p_factory, "+!activate <-\n    state/transition\n.",
                        l_actionsfrompackage, l_time).generatesingle(new UniformRealDistribution(0.0, 1.0),
                                l_time.current().toEpochMilli(), p_numberofpassengers, l_passengergenerator,
                                l_experiment, l_agents.get("toy-node-1"),
                                p_platformchangedurationdistributionsupplier.get()));

        l_messenger.experiment(l_experiment);

        // experiment (executable model)
        return l_experiment;

    } catch (final Exception l_execption) {
        throw new CRuntimeException(l_execption);
    }
}