109 lines
2.0 KiB
C
109 lines
2.0 KiB
C
#ifndef _RANDOM_H_
|
|
#define _RANDOM_H_
|
|
|
|
#if !defined( lint ) && !defined( SABER )
|
|
/* #ident "@(#)random.h 4.14 99/06/17 xlockmore" */
|
|
|
|
#endif
|
|
|
|
/*-
|
|
* Random stuff
|
|
*
|
|
* See xlock.c for copying information.
|
|
*
|
|
* Revision History:
|
|
* 17-06-99: Started log. :)
|
|
*/
|
|
|
|
/*** random number generator ***/
|
|
/* defaults */
|
|
#ifdef STANDALONE
|
|
/*-
|
|
* Compatibility with the xlockmore RNG API
|
|
* (note that the xlockmore hacks never expect negative numbers.)
|
|
*/
|
|
#define LRAND() ((long) (random() & 0x7fffffff))
|
|
#define NRAND(n) ((int) (LRAND() % (n)))
|
|
#define MAXRAND (2147483648.0) /* unsigned 1<<31 as a float */
|
|
#define SRAND(n) /* already seeded by screenhack.c */
|
|
#else /* STANDALONE */
|
|
#ifdef HAVE_RAND48
|
|
#define SRAND srand48
|
|
#define LRAND lrand48
|
|
#define MAXRAND (2147483648.0)
|
|
#ifndef DECLARED_SRAND48
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#ifndef __GLIBC__
|
|
extern void srand48(long int);
|
|
extern long int lrand48(void);
|
|
#endif
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|
|
#else /* HAVE_RAND48 */
|
|
#ifdef HAVE_RANDOM
|
|
#define SRAND srandom
|
|
#define LRAND random
|
|
#define MAXRAND (2147483648.0)
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern void srandom(unsigned int);
|
|
extern long int random(void);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#else /* HAVE_RANDOM */
|
|
#ifdef HAVE_RAND
|
|
#define SRAND srand
|
|
#define LRAND rand
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern void srand(unsigned int);
|
|
extern int rand(void);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#ifdef AIXV3
|
|
#define MAXRAND (2147483648.0)
|
|
#else
|
|
#define MAXRAND (32768.0)
|
|
#endif
|
|
#endif /* HAVE_RAND */
|
|
#endif /* HAVE_RANDOM */
|
|
#endif /* HAVE_RAND48 */
|
|
|
|
#ifndef SRAND
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern void SetRNG(long int s);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#define SRAND(X) SetRNG((long) X)
|
|
#endif
|
|
#ifndef LRAND
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
extern long LongRNG(void);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
extern long LongRNG(void);
|
|
#define LRAND() LongRNG()
|
|
#endif
|
|
#ifndef MAXRAND
|
|
#define MAXRAND (2147483648.0)
|
|
#endif
|
|
#define NRAND(X) ((int)(LRAND()%(X)))
|
|
#endif /* STANDALONE */
|
|
#endif /* _RANDOM_H_ */
|