Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(467)

Unified Diff: gcc/gmp/mpn/generic/random2.c

Issue 3050029: [gcc] GCC 4.5.0=>4.5.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gcc/gmp/mpn/generic/pre_mod_1.c ('k') | gcc/gmp/mpn/generic/redc_2.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gcc/gmp/mpn/generic/random2.c
diff --git a/gcc/gmp/mpn/generic/random2.c b/gcc/gmp/mpn/generic/random2.c
deleted file mode 100644
index e29238c51466fc7db3de28be4a86b2905b746eec..0000000000000000000000000000000000000000
--- a/gcc/gmp/mpn/generic/random2.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* mpn_random2 -- Generate random numbers with relatively long strings
- of ones and zeroes. Suitable for border testing.
-
-Copyright 1992, 1993, 1994, 1996, 2000, 2001, 2002, 2004 Free Software
-Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MP Library is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */
-
-#include "gmp.h"
-#include "gmp-impl.h"
-
-static void gmp_rrandomb __GMP_PROTO ((mp_ptr, gmp_randstate_t, unsigned long int));
-
-/* Ask _gmp_rand for 32 bits per call unless that's more than a limb can hold.
- Thus, we get the same random number sequence in the common cases.
- FIXME: We should always generate the same random number sequence! */
-#if GMP_NUMB_BITS < 32
-#define BITS_PER_RANDCALL GMP_NUMB_BITS
-#else
-#define BITS_PER_RANDCALL 32
-#endif
-
-void
-mpn_random2 (mp_ptr rp, mp_size_t n)
-{
- gmp_randstate_ptr rstate = RANDS;
- int bit_pos; /* bit number of least significant bit where
- next bit field to be inserted */
- mp_limb_t ran, ranm; /* buffer for random bits */
-
- /* FIXME: Is n==0 supposed to be allowed? */
- ASSERT (n >= 0);
-
- _gmp_rand (&ranm, rstate, BITS_PER_RANDCALL);
- ran = ranm;
-
- /* Start off at a random bit position in the most significant limb. */
- bit_pos = ran % GMP_NUMB_BITS;
-
- gmp_rrandomb (rp, rstate, n * GMP_NUMB_BITS - bit_pos);
-}
-
-static void
-gmp_rrandomb (mp_ptr rp, gmp_randstate_t rstate, unsigned long int nbits)
-{
- unsigned long int bi;
- mp_limb_t ranm; /* buffer for random bits */
- unsigned cap_chunksize, chunksize;
- mp_size_t i;
-
- /* Set entire result to 111..1 */
- i = (nbits + GMP_NUMB_BITS - 1) / GMP_NUMB_BITS - 1;
- rp[i] = GMP_NUMB_MAX >> (GMP_NUMB_BITS - (nbits % GMP_NUMB_BITS)) % GMP_NUMB_BITS;
- for (i = i - 1; i >= 0; i--)
- rp[i] = GMP_NUMB_MAX;
-
- _gmp_rand (&ranm, rstate, BITS_PER_RANDCALL);
- cap_chunksize = nbits / (ranm % 4 + 1);
- cap_chunksize += cap_chunksize == 0; /* make it at least 1 */
-
- bi = nbits;
-
- for (;;)
- {
- _gmp_rand (&ranm, rstate, BITS_PER_RANDCALL);
- chunksize = 1 + ranm % cap_chunksize;
- bi = (bi < chunksize) ? 0 : bi - chunksize;
-
- if (bi == 0)
- break; /* low chunk is ...1 */
-
- rp[bi / GMP_NUMB_BITS] ^= CNST_LIMB (1) << bi % GMP_NUMB_BITS;
-
- _gmp_rand (&ranm, rstate, BITS_PER_RANDCALL);
- chunksize = 1 + ranm % cap_chunksize;
- bi = (bi < chunksize) ? 0 : bi - chunksize;
-
- mpn_incr_u (rp + bi / GMP_NUMB_BITS, CNST_LIMB (1) << bi % GMP_NUMB_BITS);
-
- if (bi == 0)
- break; /* low chunk is ...0 */
- }
-}
« no previous file with comments | « gcc/gmp/mpn/generic/pre_mod_1.c ('k') | gcc/gmp/mpn/generic/redc_2.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698