// Copyright 2001, FreeHEP.
package org.freehep.postscript;
import java.util.Random;
/**
* Random class with integer seed
*
* @author Mark Donszelmann
* @version $Id: PSRandom.java 8958 2006-09-12 23:37:43Z duns $
*/
public class PSRandom extends Random {
private long seed;
private final static long multiplier = 0x5DEECE66DL;
private final static long addend = 0xBL;
private final static long mask = (1L << 32) - 1;
public PSRandom() {
this((int)System.currentTimeMillis());
}
public PSRandom(int seed) {
setSeed(seed);
}
synchronized public void setSeed(int seed) {
this.seed = (seed ^ multiplier) & mask;
}
synchronized protected int next(int bits) {
seed = (seed * multiplier + addend) & mask;
return (int)(seed >>> (32 - bits));
}
synchronized public int getSeed() {
return (int)(seed ^ multiplier);
}
}