edu.cornell.lassp.houle.RngPack
Class RandomSeedable
java.lang.Object
|
+--cern.colt.PersistentObject
|
+--edu.cornell.lassp.houle.RngPack.RandomElement
|
+--edu.cornell.lassp.houle.RngPack.RandomSeedable
- All Implemented Interfaces:
- Cloneable, Serializable
- Direct Known Subclasses:
- RandomEngine, Ranecu, Ranlux, Ranmar
- public abstract class RandomSeedable
- extends RandomElement
RandomSeedable
is an abstract class that extends the
RandomElement
class to include the ability to
automatically generate a valid long
seed from the clock.
Thus it provides a consistent interface for seeding interchangable
generators. It is reccomended that a RandomSeedable
have
a constructor that takes a long
for a seed. For example,
if you write a generator called ReallyRandom
, you want
to be able to do
long seed=ReallyRandom.ClockSeed();
RandomSeedable e=new ReallyRandom(seed);
this makes it convenient to keep a copy of the seed in case you want
to restart the generator with the same seed some time in the future.
If one is going to use a long to generate a smaller seed by taking
Clockseed()
modulus another number, we reccomend that
you use a prime number; this ensures that the generator would have
the maximum "period" if it were started at regular issues, for
instance, by a batch job. See Ranmar
for an
example.
Source code is available.
- See Also:
Ranecu
,
Ranlux
,
Ranmar
, Serialized Form
Method Summary |
static long |
ClockSeed()
Return a long integer seed calculated from the date. |
static long |
ClockSeed(Date d)
Return a long integer seed given a date |
RandomSeedable
public RandomSeedable()
ClockSeed
public static long ClockSeed()
- Return a long integer seed calculated from the date. Equivalent to
ClockSeed(new Date());
- Returns:
- a long integer seed
ClockSeed
public static long ClockSeed(Date d)
- Return a long integer seed given a date
- Parameters:
d
- a date- Returns:
- a long integer seed
Submit a bug or feature. Check the Colt home page for the latest news.