GRASS GIS 7 Programmer's Manual  7.5.svn(2018)-r72846
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
lrand48.c File Reference

GIS Library - Pseudo-random number generation. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <grass/gis.h>
#include <grass/glocale.h>
#include <time.h>
#include <sys/types.h>
#include <unistd.h>
Include dependency graph for lrand48.c:

Go to the source code of this file.

Macros

#define LO(x)   ((x) & 0xFFFFU)
 
#define HI(x)   ((x) >> 16)
 

Typedefs

typedef unsigned short uint16
 
typedef unsigned int uint32
 
typedef signed int int32
 

Functions

void G_srand48 (long seedval)
 Seed the pseudo-random number generator. More...
 
long G_srand48_auto (void)
 Seed the pseudo-random number generator from the time and PID. More...
 
long G_lrand48 (void)
 Generate an integer in the range [0, 2^31) More...
 
long G_mrand48 (void)
 Generate an integer in the range [-2^31, 2^31) More...
 
double G_drand48 (void)
 Generate a floating-point value in the range [0,1) More...
 

Detailed Description

GIS Library - Pseudo-random number generation.

(C) 2014 by the GRASS Development Team

This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.

Author
Glynn Clements

Definition in file lrand48.c.

Macro Definition Documentation

#define HI (   x)    ((x) >> 16)

Definition at line 45 of file lrand48.c.

Referenced by G_srand48().

#define LO (   x)    ((x) & 0xFFFFU)

Definition at line 44 of file lrand48.c.

Referenced by G_srand48().

Typedef Documentation

typedef signed int int32

Definition at line 33 of file lrand48.c.

typedef unsigned short uint16

Definition at line 31 of file lrand48.c.

typedef unsigned int uint32

Definition at line 32 of file lrand48.c.

Function Documentation

double G_drand48 ( void  )

Generate a floating-point value in the range [0,1)

Returns
the generated value

Definition at line 157 of file lrand48.c.

References r.

Referenced by f_rand(), and G_math_rand().

long G_lrand48 ( void  )

Generate an integer in the range [0, 2^31)

Returns
the generated value

Definition at line 129 of file lrand48.c.

References r.

Referenced by Rast_make_random_colors().

long G_mrand48 ( void  )

Generate an integer in the range [-2^31, 2^31)

Returns
the generated value

Definition at line 143 of file lrand48.c.

References r.

Referenced by f_rand().

void G_srand48 ( long  seedval)

Seed the pseudo-random number generator.

Parameters
seedval32-bit integer used to seed the PRNG

Definition at line 53 of file lrand48.c.

References HI, LO, and x.

Referenced by G_math_srand(), and G_srand48_auto().

long G_srand48_auto ( void  )

Seed the pseudo-random number generator from the time and PID.

A weak hash of the current time and PID is generated and used to seed the PRNG

Returns
generated seed value passed to G_srand48()

Definition at line 71 of file lrand48.c.

References _, G_fatal_error(), G_srand48(), getenv(), NULL, and t.

Referenced by G_math_srand_auto(), and Rast_make_random_colors().