package net.sourceforge.jabm.distribution;
import org.apache.commons.math3.random.RandomGenerator;
import cern.jet.random.Normal;
import cern.jet.random.engine.RandomEngine;
public class RandomGeneratorAdaptor implements RandomGenerator {
protected RandomEngine prng;
public RandomGeneratorAdaptor(RandomEngine prng) {
super();
this.prng = prng;
}
public RandomGeneratorAdaptor() {
this(null);
}
@Override
public boolean nextBoolean() {
return prng.raw() < 0.5;
}
@Override
public void nextBytes(byte[] arg0) {
throw new RuntimeException("unimplemented");
}
@Override
public double nextDouble() {
return prng.nextDouble();
}
@Override
public float nextFloat() {
return prng.nextFloat();
}
@Override
public double nextGaussian() {
return new Normal(0, 1, prng).nextDouble();
}
@Override
public int nextInt() {
return prng.nextInt();
}
@Override
public int nextInt(int arg0) {
throw new RuntimeException("unimplemented");
}
@Override
public long nextLong() {
return prng.nextLong();
}
@Override
public void setSeed(int arg0) {
throw new RuntimeException("unimplemented");
}
@Override
public void setSeed(int[] arg0) {
throw new RuntimeException("unimplemented");
}
@Override
public void setSeed(long arg0) {
throw new RuntimeException("unimplemented");
}
public RandomEngine getPrng() {
return prng;
}
public void setPrng(RandomEngine prng) {
this.prng = prng;
}
}