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

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

version 1.1.1.2, 2000/09/09 14:12:57 version 1.1.1.3, 2003/08/25 16:06:33
Line 1 
Line 1 
 /* mpz_set_si(integer, val) -- Assign INTEGER with a small value VAL.  /* mpz_set_si(dest,val) -- Assign DEST with a small value VAL.
   
 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 23  MA 02111-1307, USA. */
Line 24  MA 02111-1307, USA. */
 #include "gmp-impl.h"  #include "gmp-impl.h"
   
 void  void
 #if __STDC__  
 mpz_set_si (mpz_ptr dest, signed long int val)  mpz_set_si (mpz_ptr dest, signed long int val)
 #else  
 mpz_set_si (dest, val)  
      mpz_ptr dest;  
      signed long int val;  
 #endif  
 {  {
   /* We don't check if the allocation is enough, since the rest of the    mp_size_t size;
      package ensures it's at least 1, which is what we need here.  */    mp_limb_t vl;
   if (val > 0)  
     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)
     {      {
       dest->_mp_d[0] = val;        MPZ_REALLOC (dest, 2);
       dest->_mp_size = 1;        dest->_mp_d[1] = vl >> GMP_NUMB_BITS;
         size = 2;
     }      }
   else if (val < 0)  #endif
     {  
       dest->_mp_d[0] = (unsigned long) -val;    dest->_mp_size = val >= 0 ? size : -size;
       dest->_mp_size = -1;  
     }  
   else  
     dest->_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>