home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- #include <stddef.h>
- #include <stdlib.h>
- #ifdef AMIGA
- #ifdef HUGE_VAL
- #undef HUGE_VAL
- #endif /* HUGE_VAL */
- #endif /* AMIGA */
- #include <float.h>
- #include <time.h>
-
- #include "const.h"
- #include "structs.h"
- #include "accrete.h"
-
-
- /*----------------------------------------------------------------------*/
- /* This function returns a random real number between the specified */
- /* inner and outer bounds. */
- /*----------------------------------------------------------------------*/
-
- double random_number (inner, outer)
- double inner, outer;
- {
- #ifndef BAD
- double range;
-
- range = outer - inner;
- return((((double)rand()) / (double)(RAND_MAX)) * range + inner);
- /* was: return((((double)rand()) / (double)(RAND_MAX)) * range - outer); */
-
- #else
- double range, rand_max = RAND_MAX, tmp_a;
-
-
- range = outer - inner;
- printf("random_number(): inner = %f, outer = %f, range = %f\n",
- inner, outer, range);
-
- printf("random_number(): RAND_MAX = %f\n", rand_max);
-
- tmp_a = (double)rand(); printf("random_number(): rand() = %f\n", tmp_a);
- tmp_a = tmp_a / rand_max; printf("random_number(): tmp_a = %f\n", tmp_a);
- tmp_a = tmp_a * range; printf("random_number(): tmp_a = %f\n", tmp_a);
- tmp_a = tmp_a + inner; printf("random_number(): tmp_a = %f\n", tmp_a);
-
- return(tmp_a);
- #endif
-
- }
-
-
- /*----------------------------------------------------------------------*/
- /* This function returns a value within a certain variation of the */
- /* exact value given it in 'value'. */
- /*----------------------------------------------------------------------*/
-
- double about (value, variation)
- double value, variation;
- {
- return(value + (value * random_number(-variation,variation)));
- }
-
- double random_eccentricity ()
- {
- return(1.0 - pow(random_number(0.0, 1.0),ECCENTRICITY_COEFF));
- }
-