1 /* mpz_random -- Generate a random MP_INT of specified size.
3 Copyright (C) 1991, 1993 Free Software Foundation, Inc.
5 This file is part of the GNU MP Library.
7 The GNU MP Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
12 The GNU MP Library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with the GNU MP Library; see the file COPYING. If not, write to
19 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
24 #if !defined(__GNUC__)
25 #define __inline__ inline
28 #if defined (hpux) || defined (__alpha__)
29 /* HPUX lacks random(). DEC Alpha's random() returns a double. */
30 static __inline__ long
38 static __inline__ long
41 /* random() returns 31 bits, we want 32. */
42 return random() ^ (random() << 1);
48 mpz_random (MP_INT *x, mp_size size)
59 _mpz_realloc (x, size);
61 for (i = 0; i < size; i++)
67 for (i = size - 1; i >= 0; i--)