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

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

version 1.1.1.2, 2000/09/09 14:13:08 version 1.1.1.3, 2003/08/25 16:06:34
Line 1 
Line 1 
 /* mpf_set_si() -- Assign a float from a signed int.  /* mpf_set_si() -- Assign a float from a signed int.
   
 Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc.  Copyright 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 23  MA 02111-1307, USA. */
 #include "gmp-impl.h"  #include "gmp-impl.h"
   
 void  void
 #if __STDC__  mpf_set_si (mpf_ptr dest, long val)
 mpf_set_si (mpf_ptr x, long int val)  
 #else  
 mpf_set_si (x, val)  
      mpf_ptr x;  
      long int val;  
 #endif  
 {  {
   if (val > 0)    mp_size_t size;
     mp_limb_t vl;
   
     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;        dest->_mp_d[1] = vl >> GMP_NUMB_BITS;
       x->_mp_size = 1;        size = 2;
       x->_mp_exp = 1;  
     }      }
   else if (val < 0)  #endif
     {  
       x->_mp_d[0] = (unsigned long) -val;    dest->_mp_exp = size;
       x->_mp_size = -1;    dest->_mp_size = val >= 0 ? size : -size;
       x->_mp_exp = 1;  
     }  
   else  
     {  
       x->_mp_size = 0;  
       x->_mp_exp = 0;  
     }  
 }  }

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

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