/usr/include/nauty/naurng.h is in libnauty2-dev 2.6r7+ds-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | /* naurng.h : definitions for using Don Knuth's random number generator.
This version uses the attribute TLS_ATTR from nauty.h.
To use it:
1. Call ran_init(seed) with any long seed. (Optional,
but you will always get the same sequence otherwise.)
2. Use NEXTRAN to get the next number (0..2^30-1).
Alternatively, use KRAN(k) to get a random number 0..k-1.
For large k, KRAN(k) is not quite uniform. In that case
use GETKRAN(k,var) to set the variable var to a better
random number 0..k-1.
*/
#ifndef _NAURNG_H_ /* only process this file once */
#define _NAURNG_H_
#include <nauty/nauty.h>
#ifdef __cplusplus
extern "C" {
#endif
extern void ran_init(long seed);
extern long ran_nextran(void);
#ifdef __cplusplus
}
#endif
#define MAXRAN (0x3fffffffL) /* Values are 0..MAXRAN */
#define NEXTRAN (ran_nextran())
#define KRAN(k) (NEXTRAN%(k))
#define RANREAL ((NEXTRAN+0.5)/(MAXRAN+1.0)) /* Uniform (0,1) */
#define MAXSAFE(k) (((MAXRAN+1)/(k))*(k))
#define GETKRAN(k,var) {long __getkran; \
do {__getkran = NEXTRAN;} while (__getkran >= MAXSAFE(k)); \
var = __getkran % (k);}
#define INITRANBYTIME ran_init((long)time(NULL))
#endif /* _NAURNG_H_ */
|