1/* mpz_random2 -- Generate a positive random mpz_t of specified size, with 2 long runs of consecutive ones and zeros in the binary representation. 3 Meant for testing of other MP routines. 4 5Copyright 1991, 1993, 1994, 1996, 2001 Free Software Foundation, Inc. 6 7This file is part of the GNU MP Library. 8 9The GNU MP Library is free software; you can redistribute it and/or modify 10it under the terms of the GNU Lesser General Public License as published by 11the Free Software Foundation; either version 3 of the License, or (at your 12option) any later version. 13 14The GNU MP Library is distributed in the hope that it will be useful, but 15WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 17License for more details. 18 19You should have received a copy of the GNU Lesser General Public License 20along with the GNU MP Library. If not, see http://www.gnu.org/licenses/. */ 21 22#include "gmp.h" 23#include "gmp-impl.h" 24 25void 26mpz_random2 (mpz_ptr x, mp_size_t size) 27{ 28 mp_size_t abs_size; 29 30 abs_size = ABS (size); 31 if (abs_size != 0) 32 { 33 if (x->_mp_alloc < abs_size) 34 _mpz_realloc (x, abs_size); 35 36 mpn_random2 (x->_mp_d, abs_size); 37 } 38 39 x->_mp_size = size; 40} 41