本文整理匯總了Java中dr.math.Poisson類的典型用法代碼示例。如果您正苦於以下問題:Java Poisson類的具體用法?Java Poisson怎麽用?Java Poisson使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
Poisson類屬於dr.math包,在下文中一共展示了Poisson類的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: logPdf
import dr.math.Poisson; //導入依賴的package包/類
public static double logPdf(double x, double mean) {
PoissonDistributionImpl dist = new PoissonDistributionImpl(mean);
double pdf = dist.probability(x);
if (pdf == 0 || Double.isNaN(pdf)) { // bad estimate
return x * Math.log(mean) - Poisson.gammln(x + 1) - mean;
}
return Math.log(pdf);
}
示例2: mutate
import dr.math.Poisson; //導入依賴的package包/類
public Mutation[] mutate(byte[] sequence, byte[] childSequence) {
if (genomeLength != sequence.length) {
genomeLength = sequence.length;
poissonMean = genomeLength * muRate;
}
int mutationCount = Poisson.nextPoisson(poissonMean);
Mutation[] mutations = new Mutation[mutationCount];
System.arraycopy(sequence, 0, childSequence, 0, genomeLength);
byte newState;
for (int i = 0; i < mutationCount; i++) {
int pos = MathUtils.nextInt(genomeLength);
newState = (byte)MathUtils.nextInt(stateSize-1);
if (newState == sequence[i]) {
newState = (byte)((newState + 1) % stateSize);
}
childSequence[pos] = newState;
mutations[i] = new Mutation(pos, newState);
}
return mutations;
}
示例3: mutate
import dr.math.Poisson; //導入依賴的package包/類
public Mutation[] mutate(byte[] sequence, byte[] childSequence) {
if (genomeLength != sequence.length) {
genomeLength = sequence.length;
poissonMean = genomeLength * muRate;
}
int mutationCount = Poisson.nextPoisson(poissonMean);
Mutation[] mutations = new Mutation[mutationCount];
System.arraycopy(sequence, 0, childSequence, 0, genomeLength);
for (int i = 0; i < mutationCount; i++) {
int pos = MathUtils.nextInt(genomeLength);
byte state = (byte)((sequence[pos] + 1) % 2);
childSequence[pos] = state;
mutations[i] = new Mutation(pos, state);
}
return mutations;
}
示例4: generatePartition
import dr.math.Poisson; //導入依賴的package包/類
public double[] generatePartition() {
int lengthDividedByTwo = (getNumberOfPartitionsMinusOne() + 1) / 2;
int value = 0;
while (value < 1 || value > lengthDividedByTwo) {
value = Poisson.nextPoisson(mean);
}
int[] x = new int[getNumberOfPartitionsMinusOne() + 1];
for (int i = 0; i < value; i++) {
x[i] = 1;
}
MathUtils.permute(x);
if (x[0] == 1) {
for (int i = 0; i < x.length; i++) {
if (x[i] == 1) {
x[i] = 0;
} else {
x[i] = 1;
}
}
}
double[] rValue = new double[x.length];
for (int i = 0; i < rValue.length; i++) {
rValue[i] = x[i];
}
return rValue;
}
示例5: smoothPoissonOnly
import dr.math.Poisson; //導入依賴的package包/類
private static double[] smoothPoissonOnly(final double[] c, final double[] t, final boolean sample) {
final double[] smoothed = new double[c.length];
final double lambda = fitLambda(c, t);
for (int i = 0; i < c.length; i++) {
if (sample) {
smoothed[i] = Poisson.nextPoisson(lambda * t[i]);
} else {
smoothed[i] = lambda;
}
}
return smoothed;
}
示例6: logPdf
import dr.math.Poisson; //導入依賴的package包/類
public double logPdf(double x) {
double pdf = distribution.probability(x);
if (pdf == 0 || Double.isNaN(pdf)) { // bad estimate
final double mean = mean();
return x * Math.log(mean) - Poisson.gammln(x + 1) - mean;
}
return Math.log(pdf);
}