]> git.mxchange.org Git - flightgear.git/blob - Math/fg_random.c
Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
[flightgear.git] / Math / fg_random.c
1 /**************************************************************************
2  * fg_random.c -- routines to handle random number generation
3  *
4  * Written by Curtis Olson, started July 1997.
5  *
6  * Copyright (C) 1997  Curtis L. Olson  - curt@infoplane.com
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License as
10  * published by the Free Software Foundation; either version 2 of the
11  * License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21  *
22  * $Id$
23  * (Log is kept at end of this file)
24  **************************************************************************/
25
26
27 #include <stdio.h>
28 #include <stdlib.h>         /* for random(), srandom() */
29 #include <time.h>           /* for time() to seed srandom() */        
30 #include <Main/fg_debug.h>
31
32 #include "fg_random.h"
33
34 #ifndef USE_RAND
35 #  ifdef sgi
36 #    undef RAND_MAX
37 #    define RAND_MAX 2147483647
38 #  endif
39 #endif
40
41
42 /* Seed the random number generater with time() so we don't see the
43  * same sequence every time */
44 void fg_srandom(void) {
45     fgPrintf( FG_MATH, FG_INFO, "Seeding random number generater\n");
46
47 #ifdef USE_RAND
48     srand(time(NULL));
49 #else
50     srandom(time(NULL));
51 #endif                                       
52 }
53
54
55 /* return a random number between [0.0, 1.0) */
56 double fg_random(void) {
57 #ifdef USE_RAND
58     return(rand() / (double)RAND_MAX);
59 #else
60     return(random() / (double)RAND_MAX);
61 #endif
62 }
63
64
65 /* $Log$
66 /* Revision 1.3  1998/01/27 00:47:59  curt
67 /* Incorporated Paul Bleisch's <bleisch@chromatic.com> new debug message
68 /* system and commandline/config file processing code.
69 /*
70  * Revision 1.2  1997/12/30 20:47:48  curt
71  * Integrated new event manager with subsystem initializations.
72  *
73  * Revision 1.1  1997/07/30 16:04:09  curt
74  * Moved random routines from Utils/ to Math/
75  *
76  * Revision 1.1  1997/07/19 22:31:57  curt
77  * Initial revision.
78  *
79  */