source: main/branches/64_bit_Greenstone/greenstone2/common-src/indexers/mg/lib/random.h@ 24031

Last change on this file since 24031 was 24031, checked in by jmt12, 13 years ago

Found mg indexing randomly broke on 64bit machines. Tracked it down to random.c and perf_hash.c. Replaced all occurances of 'long' (which is not well defined on 64 bit machines) with the more stable mg_s_long (mglong.h) to fix this issue.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.6 KB
Line 
1/**************************************************************************
2 *
3 * random.h -- pseudo random number generator
4 * Copyright (C) 1994 Chris Wallace ([email protected])
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 *
20 **************************************************************************/
21
22#ifndef RANDOM_H
23#define RANDOM_H
24
25/*
26 * A random number generator called as a function by
27 * random (iseed) or irandm (iseed)
28 * The parameter should be a pointer to a 2-element long vector.
29 * The first function returns a double uniform in 0 .. 1.
30 * The second returns a long integer uniform in 0 .. 2**31-1
31 * Both update iseed[] in exactly the same way.
32 * iseed[] must be a 2-element integer vector.
33 * The initial value of the second element may be anything.
34 *
35 * The period of the random sequence is 2**32 * (2**32-1)
36 * The table mt[0:127] is defined by mt[i] = 69069 ** (128-i)
37 */
38#include "mglong.h"
39
40double random (mg_s_long is [2]);
41mg_s_long irandm (mg_s_long is [2]);
42
43#endif
Note: See TracBrowser for help on using the repository browser.