Changeset cdec33 in git for kernel/longtrans.cc


Ignore:
Timestamp:
Apr 7, 2011, 4:33:45 PM (12 years ago)
Author:
Frank Seelisch <seelisch@…>
Branches:
(u'spielwiese', '828514cf6e480e4bafc26df99217bf2a1ed1ef45')
Children:
c0b2e03243dcc8b84e3afb3a38cac55b6bb590c8
Parents:
73624c6eb72939321ed403d522f0f94a290bca1a
Message:
fix for ticket #329

git-svn-id: file:///usr/local/Singular/svn/trunk@14114 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/longtrans.cc

    r73624c6 rcdec33  
    4848BOOLEAN     (*nacIsOne)(number a);
    4949BOOLEAN     (*nacGreaterZero)(number a);
     50BOOLEAN     (*nacGreater)(number a, number b);
    5051number      (*nacMap)(number);
    5152
     
    102103  nacIsZero      = nacRing->cf->nIsZero;
    103104  nacGreaterZero = nacRing->cf->nGreaterZero;
     105  nacGreater     = nacRing->cf->nGreater;
    104106  nacIsOne       = nacRing->cf->nIsOne;
    105107  nacGcd         = nacRing->cf->nGcd;
     
    15741576}
    15751577
    1576 
     1578/* This method will only consider the numerators of a and b.
     1579   Moreover it may return TRUE only if one or both numerators
     1580   are zero or if their degrees are equal. Then TRUE is returned iff
     1581   coeff(numerator(a)) > coeff(numerator(b));
     1582   In all other cases, FALSE will be returned. */
    15771583BOOLEAN ntGreater (number a, number b)
    15781584{
    1579   if (ntIsZero(a))
    1580     return FALSE;
    1581   if (ntIsZero(b))
    1582     return TRUE; /* a!= 0)*/
    1583   return napDeg(((lnumber)a)->z)>napDeg(((lnumber)b)->z);
     1585  int az = 0; int ad = 0;
     1586  if (ntIsZero(a)) az = 1;
     1587  else ad = napDeg(((lnumber)a)->z);
     1588  int bz = 0; int bd = 0;
     1589  if (ntIsZero(b)) bz = 1;
     1590  else bd = napDeg(((lnumber)b)->z);
     1591 
     1592  if ((az == 1) && (bz == 1)) /* a = b = 0 */ return FALSE;
     1593  if (az == 1) /* a = 0, b != 0 */
     1594  {
     1595    return (!nacGreaterZero(pGetCoeff(((lnumber)b)->z)));
     1596  }
     1597  if (bz == 1) /* a != 0, b = 0 */
     1598  {
     1599    return (nacGreaterZero(pGetCoeff(((lnumber)a)->z)));
     1600  }
     1601  if (ad == bd) 
     1602    return nacGreater(pGetCoeff(((lnumber)a)->z),
     1603                      pGetCoeff(((lnumber)b)->z));
     1604  return FALSE;
    15841605}
    15851606
Note: See TracChangeset for help on using the changeset viewer.