=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpz/Attic/set_ui.c,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -p -r1.1.1.2 -r1.1.1.3 --- OpenXM_contrib/gmp/mpz/Attic/set_ui.c 2000/09/09 14:12:58 1.1.1.2 +++ OpenXM_contrib/gmp/mpz/Attic/set_ui.c 2003/08/25 16:06:34 1.1.1.3 @@ -1,6 +1,6 @@ /* mpz_set_ui(integer, val) -- Assign INTEGER with a small value VAL. -Copyright (C) 1991, 1993, 1994, 1995 Free Software Foundation, Inc. +Copyright 1991, 1993, 1994, 1995, 2001, 2002 Free Software Foundation, Inc. This file is part of the GNU MP Library. @@ -23,21 +23,21 @@ MA 02111-1307, USA. */ #include "gmp-impl.h" void -#if __STDC__ mpz_set_ui (mpz_ptr dest, unsigned long int val) -#else -mpz_set_ui (dest, val) - mpz_ptr dest; - unsigned long int val; -#endif { - /* We don't check if the allocation is enough, since the rest of the - package ensures it's at least 1, which is what we need here. */ - if (val > 0) + mp_size_t size; + + dest->_mp_d[0] = val & GMP_NUMB_MASK; + size = val != 0; + +#if GMP_NAIL_BITS != 0 + if (val > GMP_NUMB_MAX) { - dest->_mp_d[0] = val; - dest->_mp_size = 1; + MPZ_REALLOC (dest, 2); + dest->_mp_d[1] = val >> GMP_NUMB_BITS; + size = 2; } - else - dest->_mp_size = 0; +#endif + + dest->_mp_size = size; }