org.gjt.universe.accrete
Class CustomRandom

java.lang.Object
  |
  +--java.util.Random
        |
        +--org.gjt.universe.accrete.CustomRandom
All Implemented Interfaces:
PhysicalConstants, java.io.Serializable

public final class CustomRandom
extends java.util.Random
implements PhysicalConstants

This class provides a random number generator with additional access methods.

Copyright information

This Java class is copyright 1998 by Carl Burke. All rights reserved. Substantial sections of this code were previously distributed in different form as part of 'starform' (copyright 1989 Matthew Burdick)

This software is provided absolutely free and without warranty, including but not limited to the implied warranties of merchantability and fitness for a purpose. You may use this code for any legal purpose provided that you do not charge for it; this implies that you may use this code as a component of a commercial system as long as the additional functionality of the commercial system is greater than what this code provides and that the commercial system is not primarily intended as a simulation of solar system formation. In other words, if you want to write a science-fiction computer game that uses the code in this package to build objects which are used in the game, that's great and permitted; if you use this code to make a kickass solar-system-builder, you are not allowed to distribute that software except for free.

You are allowed and encouraged to modify this software, provided that this copyright notice remains intact. This notice may be reformatted, but not removed.

If you do use this software, I and the contributing authors listed under "Acknowledgements" would appreciate some recognition. If you make changes, I would appreciate it if you would pass those changes back to me for possible inclusion in the master. At the time this notice was prepared, my email address is cburke@mitre.org and the home page for this software is http://www.geocities.com/Area51/6902/w_accr.html.

Acknowledgements

Matt Burdick, the author of 'starform' (freeware copyright 1989); much of the code (particularly planetary environments) was adapted from this.

Andrew Folkins, the author of 'accretion' (public domain) for the Amiga; I used chunks of his code when creating my displays.

Ed Taychert of Irony Games, for the algorithm he uses to classify terrestrial planets in his tabular CGI implementation of 'starform'.

Paul Schlyter, who provided information about computing planetary positions.

See Also:
Serialized Form

Field Summary
protected  boolean normdone
           
protected  double normstore
           
 
Fields inherited from class java.util.Random
 
Fields inherited from interface org.gjt.universe.accrete.PhysicalConstants
A1_20, A2_20, AIRLESS_ICE_ALBEDO, ALPHA, AMMONIA, ANGSTROM, ARGON, ATOMIC_HYDROGEN, ATOMIC_NITROGEN, ATOMIC_OXYGEN, B, BETA_20, BK, CARBON_DIOXIDE, CARBON_MONOXIDE, CHANGE_IN_EARTH_ANG_VEL, CLOUD_ALBEDO, CLOUD_COVERAGE_FACTOR, CM_PER_AU, CM_PER_KM, CM_PER_METER, CO2, DAYS_IN_A_YEAR, DEG_TO_RAD, DUST_DENSITY_COEFF, EARTH_ACCELERATION, EARTH_ALBEDO, EARTH_AXIAL_TILT, EARTH_CONVECTION_FACTOR, EARTH_DENSITY, EARTH_EFFECTIVE_TEMP, EARTH_EXOSPHERE_TEMP, EARTH_MASS_IN_GRAMS, EARTH_RADIUS, EARTH_SURF_PRES_IN_MILLIBARS, EARTH_WATER_MASS_PER_AREA, ECCENTRICITY_COEFF, FREEZING_POINT_OF_WATER, G, GAS_GIANT_ALBEDO, GAS_RETENTION_THRESHOLD, GRAV_CONSTANT, GREENHOUSE_EFFECT_CONST, H2, H2O, HELIUM, HYDROGEN_SULPHIDE, ICE_ALBEDO, INCREDIBLY_LARGE_NUMBER, J, K, KELVIN_CELCIUS_DIFFERENCE, KM_EARTH_RADIUS, KM_PER_AU, KRYPTON, MEARTH, METHANE, MH, MILLIBARS_PER_BAR, MOL_HYDROGEN, MOL_NITROGEN, MOL_OXYGEN, MOLAR_GAS_CONST, N, N2, NEON, NITRIC_OXIDE, NITROGEN_DIOXIDE, NITROUS_OXIDE, O2, OZONE, PI, Q1_36, Q2_36, RAD_TO_DEG, RADIANS_PER_ROTATION, ROCKY_AIRLESS_ALBEDO, ROCKY_ALBEDO, SECONDS_PER_HOUR, SOLAR_MASS_IN_GRAMS, SULPH_DIOXIDE, SULPH_TRIOXIDE, SUN_MASS_IN_EARTH_MASSES, WATER_ALBEDO, WATER_VAPOR, XENON
 
Constructor Summary
CustomRandom()
          Default constructor.
CustomRandom(long seed)
          Default constructor.
 
Method Summary
 double about(double value, double variation)
          Returns a value within a certain uniform variation from the central value.
 double LognormalDeviate(double sigma)
          Produces a random variate whose natural logarithm is from the Gaussian with mean=0 and the specified standard deviation.
 double NormalDeviate()
          Produces a Gaussian random variate with mean=0, standard deviation=1.
 double random_eccentricity()
          Returns a value for orbital eccentricity between 0.0 and 1.0
 double random_number(double inner, double outer)
          Returns a uniformly distributed random real number between the specified inner and outer bounds.
 void setSeed(long s)
          Sets the random seed to the new value, performing additional housekeeping.
 
Methods inherited from class java.util.Random
next, nextBoolean, nextBytes, nextDouble, nextFloat, nextGaussian, nextInt, nextInt, nextLong
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

normdone

protected boolean normdone

normstore

protected double normstore
Constructor Detail

CustomRandom

public CustomRandom()
Default constructor. Calls the constructor for Random with no seed.


CustomRandom

public CustomRandom(long seed)
Default constructor. Calls the constructor for Random with the specified seed.

Method Detail

setSeed

public void setSeed(long s)
Sets the random seed to the new value, performing additional housekeeping.

Overrides:
setSeed in class java.util.Random

NormalDeviate

public double NormalDeviate()
Produces a Gaussian random variate with mean=0, standard deviation=1.


LognormalDeviate

public double LognormalDeviate(double sigma)
Produces a random variate whose natural logarithm is from the Gaussian with mean=0 and the specified standard deviation.

Parameters:
sigma - Standard deviation

random_number

public double random_number(double inner,
                            double outer)
Returns a uniformly distributed random real number between the specified inner and outer bounds.

Parameters:
inner - Minimum value desired
outer - Maximum value desired

about

public double about(double value,
                    double variation)
Returns a value within a certain uniform variation from the central value.

Parameters:
value - Central value
variation - Maximum (uniform) variation above or below center

random_eccentricity

public double random_eccentricity()
Returns a value for orbital eccentricity between 0.0 and 1.0



Copyright © 2001 Universe Dev Team All Rights Reserved.