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

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

version 1.1.1.2, 2000/09/09 14:13:12 version 1.1.1.3, 2003/08/25 16:06:35
Line 1 
Line 1 
 /* mpf_div -- Divide two floats.  /* mpf_div -- Divide two floats.
   
 Copyright (C) 1993, 1994, 1996, 2000 Free Software Foundation, Inc.  Copyright 1993, 1994, 1996, 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 24  MA 02111-1307, USA. */
 #include "longlong.h"  #include "longlong.h"
   
 void  void
 #if __STDC__  
 mpf_div (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)  mpf_div (mpf_ptr r, mpf_srcptr u, mpf_srcptr v)
 #else  
 mpf_div (r, u, v)  
      mpf_ptr r;  
      mpf_srcptr u;  
      mpf_srcptr v;  
 #endif  
 {  {
   mp_srcptr up, vp;    mp_srcptr up, vp;
   mp_ptr rp, tp, rtp;    mp_ptr rp, tp, rtp;
Line 39  mpf_div (r, u, v)
Line 32  mpf_div (r, u, v)
   mp_size_t rsize, tsize;    mp_size_t rsize, tsize;
   mp_size_t sign_quotient;    mp_size_t sign_quotient;
   mp_size_t prec;    mp_size_t prec;
   unsigned normalization_steps;  
   mp_limb_t q_limb;    mp_limb_t q_limb;
   mp_exp_t rexp;    mp_exp_t rexp;
   TMP_DECL (marker);    TMP_DECL (marker);
Line 89  mpf_div (r, u, v)
Line 81  mpf_div (r, u, v)
       rtp = tp + (tsize - usize);        rtp = tp + (tsize - usize);
     }      }
   
   count_leading_zeros (normalization_steps, vp[vsize - 1]);  
   
   /* Normalize the divisor and the dividend.  */    /* Normalize the divisor and the dividend.  */
   if (normalization_steps != 0)    if ((vp[vsize-1] & GMP_NUMB_HIGHBIT) == 0)
     {      {
       mp_ptr tmp;        mp_ptr tmp;
       mp_limb_t nlimb;        mp_limb_t nlimb;
         unsigned normalization_steps;
   
         count_leading_zeros (normalization_steps, vp[vsize - 1]);
         normalization_steps -= GMP_NAIL_BITS;
   
       /* Shift up the divisor setting the most significant bit of        /* Shift up the divisor setting the most significant bit of
          the most significant limb.  Use temporary storage not to clobber           the most significant limb.  Use temporary storage not to clobber

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

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