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

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

version 1.1.1.2, 2000/09/09 14:12:59 version 1.1.1.3, 2003/08/25 16:06:34
Line 1 
Line 1 
 /* mpz_tdiv_q_2exp -- Divide an integer by 2**CNT.  Round the quotient  /* mpz_tdiv_q_2exp -- Divide an integer by 2**CNT.  Round the quotient
    towards -infinity.     towards -infinity.
   
 Copyright (C) 1991, 1993, 1994, 1996 Free Software Foundation, Inc.  Copyright 1991, 1993, 1994, 1996, 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 "gmp-impl.h"  #include "gmp-impl.h"
   
 void  void
 #if __STDC__  
 mpz_tdiv_q_2exp (mpz_ptr w, mpz_srcptr u, unsigned long int cnt)  mpz_tdiv_q_2exp (mpz_ptr w, mpz_srcptr u, unsigned long int cnt)
 #else  
 mpz_tdiv_q_2exp (w, u, cnt)  
      mpz_ptr w;  
      mpz_srcptr u;  
      unsigned long int cnt;  
 #endif  
 {  {
   mp_size_t usize, wsize;    mp_size_t usize, wsize;
   mp_size_t limb_cnt;    mp_size_t limb_cnt;
   
   usize = u->_mp_size;    usize = u->_mp_size;
   limb_cnt = cnt / BITS_PER_MP_LIMB;    limb_cnt = cnt / GMP_NUMB_BITS;
   wsize = ABS (usize) - limb_cnt;    wsize = ABS (usize) - limb_cnt;
   if (wsize <= 0)    if (wsize <= 0)
     w->_mp_size = 0;      w->_mp_size = 0;
Line 52  mpz_tdiv_q_2exp (w, u, cnt)
Line 45  mpz_tdiv_q_2exp (w, u, cnt)
       wp = w->_mp_d;        wp = w->_mp_d;
       up = u->_mp_d;        up = u->_mp_d;
   
       cnt %= BITS_PER_MP_LIMB;        cnt %= GMP_NUMB_BITS;
       if (cnt != 0)        if (cnt != 0)
         {          {
           mpn_rshift (wp, up + limb_cnt, wsize, cnt);            mpn_rshift (wp, up + limb_cnt, wsize, cnt);

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

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