Ignore:
Timestamp:
Feb 19, 2013, 8:24:02 PM (10 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
Children:
3693cf538753b44f4862e8f7dc384771128b32d0
Parents:
c444f4bb94b31371e1eaab7e2df8f87c1d4f068d
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-02-19 20:24:02+01:00
git-committer:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2013-02-19 21:22:07+01:00
Message:
fix: ntGreater (Short/bug_tr329)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/ext_fields/transext.cc

    rc444f4 rfd60be  
    609609  ntTest(b);
    610610  number aNumCoeff = NULL; int aNumDeg = -1;
     611  number aDenCoeff = NULL; int aDenDeg = -1;
    611612  number bNumCoeff = NULL; int bNumDeg = -1;
     613  number bDenCoeff = NULL; int bDenDeg = -1;
    612614  if (!IS0(a))
    613615  {
     
    615617    aNumDeg = p_Totaldegree(NUM(fa), ntRing);
    616618    aNumCoeff = p_GetCoeff(NUM(fa), ntRing);
     619    if (DEN(fa)!=NULL)
     620    {
     621      aDenDeg = p_Totaldegree(DEN(fa), ntRing);
     622      aDenCoeff=p_GetCoeff(DEN(fa),ntRing);
     623    }
    617624  }
    618625  else return !(ntGreaterZero (b,cf));
     
    622629    bNumDeg = p_Totaldegree(NUM(fb), ntRing);
    623630    bNumCoeff = p_GetCoeff(NUM(fb), ntRing);
     631    if (DEN(fb)!=NULL)
     632    {
     633      bDenDeg = p_Totaldegree(DEN(fb), ntRing);
     634      bDenCoeff=p_GetCoeff(DEN(fb),ntRing);
     635    }
    624636  }
    625637  else return ntGreaterZero(a,cf);
    626   if (aNumDeg > bNumDeg) return TRUE;
    627   if (aNumDeg < bNumDeg) return FALSE;
    628   return n_Greater(aNumCoeff, bNumCoeff, ntCoeffs);
     638  if (aNumDeg-aDenDeg > bNumDeg-bDenDeg) return TRUE;
     639  if (aNumDeg-aDenDeg < bNumDeg-bDenDeg) return FALSE;
     640  number aa;
     641  number bb;
     642  if (bDenCoeff==NULL) aa=n_Copy(aNumCoeff,ntRing->cf);
     643  else                 aa=n_Mult(aNumCoeff,bDenCoeff,ntRing->cf);
     644  if (aDenCoeff==NULL) bb=n_Copy(bNumCoeff,ntRing->cf);
     645  else                 bb=n_Mult(bNumCoeff,aDenCoeff,ntRing->cf);
     646  BOOLEAN rr= n_Greater(aa, bb, ntCoeffs);
     647  n_Delete(&aa,ntRing->cf);
     648  n_Delete(&bb,ntRing->cf);
     649  return rr;
    629650}
    630651
Note: See TracChangeset for help on using the changeset viewer.