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

Diff for /OpenXM_contrib/gmp/mpq/Attic/canonicalize.c between version 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2000/09/09 14:13:02 version 1.1.1.3, 2003/08/25 16:06:34
Line 1 
Line 1 
 /* mpq_canonicalize(op) -- Remove common factors of the denominator and  /* mpq_canonicalize(op) -- Remove common factors of the denominator and
    numerator in OP.     numerator in OP.
   
 Copyright (C) 1991, 1994, 1995, 1996 Free Software Foundation, Inc.  Copyright 1991, 1994, 1995, 1996, 2000, 2001 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__  
 mpq_canonicalize (MP_RAT *op)  mpq_canonicalize (MP_RAT *op)
 #else  
 mpq_canonicalize (op)  
      MP_RAT *op;  
 #endif  
 {  {
   mpz_t gcd;    mpz_t gcd;
   TMP_DECL (marker);    TMP_DECL (marker);
   
     if (op->_mp_den._mp_size == 0)
       DIVIDE_BY_ZERO;
   
   TMP_MARK (marker);    TMP_MARK (marker);
   
   /* ??? Dunno if the 1+ is needed.  */    /* ??? Dunno if the 1+ is needed.  */
Line 41  mpq_canonicalize (op)
Line 39  mpq_canonicalize (op)
                               ABS (op->_mp_den._mp_size)));                                ABS (op->_mp_den._mp_size)));
   
   mpz_gcd (gcd, &(op->_mp_num), &(op->_mp_den));    mpz_gcd (gcd, &(op->_mp_num), &(op->_mp_den));
   mpz_divexact (&(op->_mp_num), &(op->_mp_num), gcd);    if (! MPZ_EQUAL_1_P (gcd))
   mpz_divexact (&(op->_mp_den), &(op->_mp_den), gcd);      {
         mpz_divexact_gcd (&(op->_mp_num), &(op->_mp_num), gcd);
         mpz_divexact_gcd (&(op->_mp_den), &(op->_mp_den), gcd);
       }
   
   if (op->_mp_den._mp_size < 0)    if (op->_mp_den._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>