[BACK]Return to iset_si.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpz

Diff for /OpenXM_contrib/gmp/mpz/Attic/iset_si.c between version 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2000/09/09 14:12:54 version 1.1.1.3, 2003/08/25 16:06:33
Line 1 
Line 1 
 /* mpz_init_set_si(val) -- Make a new multiple precision number with  /* mpz_init_set_si(dest,val) -- Make a new multiple precision in DEST and
    value val.     assign VAL to the new number.
   
 Copyright (C) 1991, 1993, 1994, 1995, 2000 Free Software Foundation, Inc.  Copyright 1991, 1993, 1994, 1995, 2000, 2001, 2002 Free Software Foundation,
   Inc.
   
 This file is part of the GNU MP Library.  This file is part of the GNU MP Library.
   
Line 24  MA 02111-1307, USA. */
Line 25  MA 02111-1307, USA. */
 #include "gmp-impl.h"  #include "gmp-impl.h"
   
 void  void
 #if __STDC__  mpz_init_set_si (mpz_ptr dest, signed long int val)
 mpz_init_set_si (mpz_ptr x, signed long int val)  
 #else  
 mpz_init_set_si (x, val)  
      mpz_ptr x;  
      signed long int val;  
 #endif  
 {  {
   x->_mp_alloc = 1;    mp_size_t size;
   x->_mp_d = (mp_ptr) (*_mp_allocate_func) (BYTES_PER_MP_LIMB);    mp_limb_t vl;
   if (val > 0)  
     dest->_mp_alloc = 1;
     dest->_mp_d = (mp_ptr) (*__gmp_allocate_func) (BYTES_PER_MP_LIMB);
   
     vl = (mp_limb_t) (unsigned long int) (val >= 0 ? val : -val);
   
     dest->_mp_d[0] = vl & GMP_NUMB_MASK;
     size = vl != 0;
   
   #if GMP_NAIL_BITS != 0
     if (vl > GMP_NUMB_MAX)
     {      {
       x->_mp_d[0] = val;        MPZ_REALLOC (dest, 2);
       x->_mp_size = 1;        dest->_mp_d[1] = vl >> GMP_NUMB_BITS;
         size = 2;
     }      }
   else if (val < 0)  #endif
     {  
       x->_mp_d[0] = (unsigned long) -val;    dest->_mp_size = val >= 0 ? size : -size;
       x->_mp_size = -1;  
     }  
   else  
     x->_mp_size = 0;  
 }  }

Legend:
Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>