GRASS GIS 8 Programmer's Manual  8.2.2dev(2023)-3d2c704037
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 <sys/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

◆ HI

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

Definition at line 45 of file lrand48.c.

◆ LO

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

Definition at line 44 of file lrand48.c.

Typedef Documentation

◆ int32

typedef signed int int32

Definition at line 33 of file lrand48.c.

◆ uint16

typedef unsigned short uint16

Definition at line 31 of file lrand48.c.

◆ uint32

typedef unsigned int uint32

Definition at line 32 of file lrand48.c.

Function Documentation

◆ G_drand48()

double G_drand48 ( void  )

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

Returns
the generated value

Definition at line 158 of file lrand48.c.

References r.

Referenced by G_math_rand().

◆ G_lrand48()

long G_lrand48 ( void  )

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

Returns
the generated value

Definition at line 130 of file lrand48.c.

References r.

◆ G_mrand48()

long G_mrand48 ( void  )

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

Returns
the generated value

Definition at line 144 of file lrand48.c.

References r.

Referenced by f_rand().

◆ G_srand48()

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 x.

Referenced by G_math_srand(), and G_srand48_auto().

◆ 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().