File: random.c

package info (click to toggle)
fsp 2.81.b24-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,904 kB
  • ctags: 1,423
  • sloc: ansic: 9,215; sh: 3,639; makefile: 212; lex: 130; csh: 77; python: 22
file content (36 lines) | stat: -rw-r--r-- 836 bytes parent folder | download | duplicates (3)
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
#include "tweak.h"
#include "server_def.h"
#include "s_extern.h"

/****************************************************************************
 * Routine to return a 16-bit key with random number.
 ****************************************************************************/


/* get high bits from random result - better */
unsigned short gen_next_key (void)
{
  return (random() >> 15);
}

#if 0
/* The following algorithm is recommended by Numerical Recipies. */
/* Best, but needs floating point division. */
unsigned short gen_next_key PROTO0 ((void))
{
        unsigned short ulRandom = ((float)(0xffff)*rand()/(RAND_MAX+1.0f));
	return(ulRandom);
}
#endif
#if 0
/* FSP original */
unsigned short gen_next_key PROTO0((void))
{
  unsigned long k;

  k = random();
  k = k ^ (k >> 8) ^ (k >> 16) ^ (k << 8);

  return k;
}
#endif