List of usage examples for org.apache.commons.math.distribution ExponentialDistributionImpl ExponentialDistributionImpl
public ExponentialDistributionImpl(double mean)
From source file:asr.failure.PhiMeasure.java
/** * Compute phi assuming the samples have an exponential distribution. * /*from w w w. j av a 2 s .com*/ * @param samples * @param test * @return phi */ public static double compute(DescriptiveStatistics samples, double test) { try { double probability = 1 - new ExponentialDistributionImpl(samples.getMean()).cumulativeProbability(test); return -1 * Math.log10(probability); } catch (MathException e) { throw new IllegalArgumentException(e); } }
From source file:de.tud.kom.p2psim.impl.util.stat.distributions.ExponentialDistribution.java
/** * returns a random value exponentially distributed with mu = _mu. * //from www . j a va 2 s . c om * @param _mu * @return as double */ public static double returnValue(double _mu) { try { ExponentialDistributionImpl d = new ExponentialDistributionImpl(_mu); return d.inverseCumulativeProbability(Simulator.getRandom().nextDouble()); } catch (MathException e) { // TODO Auto-generated catch block e.printStackTrace(); return 0; } }
From source file:de.tud.kom.p2psim.impl.util.stat.distributions.ExponentialDistribution.java
@XMLConfigurableConstructor({ "mu" }) public ExponentialDistribution(double mu) { this.mu = mu; this.distr = new ExponentialDistributionImpl(mu); }
From source file:evaluation.simulator.plugins.outputStrategy.StopAndGoMessage.java
public StopAndGoMessage(boolean isRequest, NetworkNode source, NetworkNode destination, AbstractClient owner, long creationTime, boolean isDummy) { super(isRequest, source, destination, owner, creationTime, isDummy); this.identifier = idCounter++; // generate delays securityParameterMu = Simulator.settings.getPropertyAsDouble("SGMIX_SECURITY_PARAMETER_MU"); Simulator simulator = Simulator.getSimulator(); int numberOfMixes = simulator.getMixes().size(); this.delay = new int[numberOfMixes]; this.expDist = new ExponentialDistributionImpl(1d / securityParameterMu); this.expDist.reseedRandomGenerator(secureRandom.nextLong()); boolean useTimeStamps = Simulator.settings.getPropertyAsBoolean("SGMIX_USE_TIMESTAMPS"); for (int i = 0; i < numberOfMixes; i++) { try {//from www . j av a 2 s . c o m delay[i] = (int) Math.round(expDist.sample() * 1000d); } catch (MathException e) { e.printStackTrace(); throw new RuntimeException("ERROR: could not draw sample from exponential distribution!"); } } if (useTimeStamps) { minInterMixDelay = Simulator.settings.getPropertyAsInt("SGMIX_MIN_INTER_MIX_DELAY"); maxInterMixDelay = Simulator.settings.getPropertyAsInt("SGMIX_MAX_INTER_MIX_DELAY"); minClientMixDelay = Simulator.settings.getPropertyAsInt("SGMIX_MIN_CLIENT_MIX_DELAY"); maxClientMixDelay = Simulator.settings.getPropertyAsInt("SGMIX_MAX_CLIENT_MIX_DELAY"); maxClockDeviation = Simulator.settings.getPropertyAsInt("SGMIX_MAX_CLOCK_DEVITION"); tsMin = new long[numberOfMixes]; tsMax = new long[numberOfMixes]; for (int i = 0; i < numberOfMixes; i++) { if (isRequest) { tsMin[i] = getMinTimestampForRequest(i, maxClockDeviation, delay, minInterMixDelay, minClientMixDelay); tsMax[i] = getMaxTimestampForRequest(i, maxClockDeviation, delay, maxInterMixDelay, maxClientMixDelay); } else { tsMin[i] = getMinTimestampForReply(i, maxClockDeviation, delay, minInterMixDelay, minClientMixDelay); tsMax[i] = getMaxTimestampForReply(i, maxClockDeviation, delay, maxInterMixDelay, maxClientMixDelay); } } } }
From source file:edu.utexas.cs.tactex.servercustomers.factoredcustomer.ProbabilityDistribution.java
ProbabilityDistribution(FactoredCustomerService service, Element xml) { if (null == randomSeedRepo) randomSeedRepo = (RandomSeedRepo) SpringApplicationContext.getBean("randomSeedRepo"); type = Enum.valueOf(DistType.class, xml.getAttribute("distribution")); switch (type) { case POINTMASS: case DEGENERATE: param1 = Double.parseDouble(xml.getAttribute("value")); sampler = new DegenerateSampler(param1); break;/*from w ww .ja v a 2 s. c o m*/ case UNIFORM: param1 = Double.parseDouble(xml.getAttribute("low")); param2 = Double.parseDouble(xml.getAttribute("high")); sampler = new UniformSampler(param1, param2); break; case INTERVAL: param1 = Double.parseDouble(xml.getAttribute("mean")); param2 = Double.parseDouble(xml.getAttribute("stdDev")); param3 = Double.parseDouble(xml.getAttribute("low")); param4 = Double.parseDouble(xml.getAttribute("high")); sampler = new IntervalSampler(param1, param2, param3, param4); break; case NORMAL: case GAUSSIAN: param1 = Double.parseDouble(xml.getAttribute("mean")); param2 = Double.parseDouble(xml.getAttribute("stdDev")); sampler = new ContinuousSampler(new NormalDistributionImpl(param1, param2)); break; case STDNORMAL: param1 = 0; param2 = 1; sampler = new ContinuousSampler(new NormalDistributionImpl(param1, param2)); break; case LOGNORMAL: param1 = Double.parseDouble(xml.getAttribute("expMean")); param2 = Double.parseDouble(xml.getAttribute("expStdDev")); sampler = new LogNormalSampler(param1, param2); break; case CAUCHY: param1 = Double.parseDouble(xml.getAttribute("median")); param2 = Double.parseDouble(xml.getAttribute("scale")); sampler = new ContinuousSampler(new CauchyDistributionImpl(param1, param2)); break; case BETA: param1 = Double.parseDouble(xml.getAttribute("alpha")); param2 = Double.parseDouble(xml.getAttribute("beta")); sampler = new ContinuousSampler(new BetaDistributionImpl(param1, param2)); break; case BINOMIAL: param1 = Double.parseDouble(xml.getAttribute("trials")); param2 = Double.parseDouble(xml.getAttribute("success")); sampler = new DiscreteSampler(new BinomialDistributionImpl((int) param1, param2)); break; case POISSON: param1 = Double.parseDouble(xml.getAttribute("lambda")); sampler = new DiscreteSampler(new PoissonDistributionImpl(param1)); break; case CHISQUARED: param1 = Double.parseDouble(xml.getAttribute("dof")); sampler = new ContinuousSampler(new ChiSquaredDistributionImpl(param1)); break; case EXPONENTIAL: param1 = Double.parseDouble(xml.getAttribute("mean")); sampler = new ContinuousSampler(new ExponentialDistributionImpl(param1)); break; case GAMMA: param1 = Double.parseDouble(xml.getAttribute("alpha")); param2 = Double.parseDouble(xml.getAttribute("beta")); sampler = new ContinuousSampler(new GammaDistributionImpl(param1, param2)); break; case WEIBULL: param1 = Double.parseDouble(xml.getAttribute("alpha")); param2 = Double.parseDouble(xml.getAttribute("beta")); sampler = new ContinuousSampler(new WeibullDistributionImpl(param1, param2)); break; case STUDENT: param1 = Double.parseDouble(xml.getAttribute("dof")); sampler = new ContinuousSampler(new TDistributionImpl(param1)); break; case SNEDECOR: param1 = Double.parseDouble(xml.getAttribute("d1")); param2 = Double.parseDouble(xml.getAttribute("d2")); sampler = new ContinuousSampler(new FDistributionImpl(param1, param2)); break; default: throw new Error("Invalid probability distribution type!"); } sampler.reseedRandomGenerator(service.getRandomSeedRepo() .getRandomSeed("factoredcustomer.ProbabilityDistribution", SeedIdGenerator.getId(), "Sampler") .getValue()); }
From source file:adams.gui.visualization.stats.paintlet.Exponential.java
/** * The paint routine of the paintlet./*from w w w. j a v a 2s .c om*/ * * @param g the graphics context to use for painting * @param moment what {@link PaintMoment} is currently being painted */ @Override protected void doPerformPaint(Graphics g, PaintMoment moment) { if ((m_Data != null) && (m_Sorted != null)) { GUIHelper.configureAntiAliasing(g, m_AntiAliasingEnabled); for (int i = 0; i < m_Sorted.length; i++) { Graphics2D g2d = (Graphics2D) g; //If data points are to be filled if (m_Fill) { g2d.setColor(m_FillColor); g2d.setStroke(new BasicStroke(0)); g2d.fillOval(m_AxisBottom.valueToPos(m_Sorted[i]) - m_Size / 2, m_AxisLeft.valueToPos(m_TransformedY[i]) - m_Size / 2, m_Size, m_Size); } //outline of data point g2d.setStroke(new BasicStroke(m_StrokeThickness)); g2d.setColor(m_Color); g2d.drawOval(m_AxisBottom.valueToPos(m_Sorted[i]) - m_Size / 2, m_AxisLeft.valueToPos(m_TransformedY[i]) - m_Size / 2, m_Size, m_Size); } //if drawing regression fit diagonal if (m_RegressionLine) { g.setColor(Color.BLACK); double[] newData = new double[m_Sorted.length]; for (int i = 0; i < m_Sorted.length; i++) { newData[i] = Math.log(m_Sorted[i]); } ExponentialDistributionImpl ex = new ExponentialDistributionImpl(StatUtils.mean(newData)); //draw the expected diagonal line using the exponential distribution for (int i = 0; i < m_Sorted.length - 1; i++) { double prob1; try { prob1 = ex.cumulativeProbability(newData[i]); } catch (MathException e) { prob1 = 0; } double prob2; try { prob2 = ex.cumulativeProbability(newData[i + 1]); } catch (MathException e) { prob2 = 0; } double p1 = -Math.log(1 - prob1); double p2 = -Math.log(1 - prob2); g.drawLine(m_AxisBottom.valueToPos(m_Sorted[i]), m_AxisLeft.valueToPos(p1), m_AxisBottom.valueToPos(m_Sorted[i + 1]), m_AxisLeft.valueToPos(p2)); } } } }
From source file:geogebra.kernel.statistics.AlgoDistribution.java
ExponentialDistribution getExponentialDistribution(double param) { if (exponential == null) exponential = new ExponentialDistributionImpl(1.0 / param); else {//from w w w.j ava 2s.com exponential.setMean(1.0 / param); } return exponential; }
From source file:geogebra.common.kernel.statistics.AlgoDistribution.java
/** * @param param//from w w w .j a va2 s .c o m * mean * @return exponential distribution */ protected ExponentialDistribution getExponentialDistribution(double param) { if (exponential == null || exponential.getMean() != param) exponential = new ExponentialDistributionImpl(1.0 / param); return exponential; }
From source file:org.apache.gossip.accrual.FailureDetector.java
public synchronized Double computePhiMeasure(long now) { if (latestHeartbeatMs == -1 || descriptiveStatistics.getN() < minimumSamples) { return null; }// w ww . j ava2 s.c om long delta = now - latestHeartbeatMs; try { double probability; if (distribution.equals("normal")) { double standardDeviation = descriptiveStatistics.getStandardDeviation(); standardDeviation = standardDeviation < 0.1 ? 0.1 : standardDeviation; probability = new NormalDistributionImpl(descriptiveStatistics.getMean(), standardDeviation) .cumulativeProbability(delta); } else { probability = new ExponentialDistributionImpl(descriptiveStatistics.getMean()) .cumulativeProbability(delta); } final double eps = 1e-12; if (1 - probability < eps) { probability = 1.0; } return -1.0d * Math.log10(1.0d - probability); } catch (MathException | IllegalArgumentException e) { LOGGER.debug(e); return null; } }
From source file:org.broadinstitute.gatk.utils.MathUtils.java
public static ExponentialDistribution exponentialDistribution(final double mean) { return new ExponentialDistributionImpl(mean); }