Changeset 8887b4 in git for libpolys


Ignore:
Timestamp:
Dec 2, 2016, 1:23:40 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
fe25daf21a9ab3493a097c012583fa47485393df
Parents:
b0c4944a4b9999bd38a271be9f2c1b1821edeb44
Message:
chg: make nlChineseRemainderSym usable for Q.Z. bigint
Location:
libpolys/coeffs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libpolys/coeffs/longrat.cc

    rb0c494 r8887b4  
    7373
    7474void     nlCoeffWrite(const coeffs r, BOOLEAN details);
    75 number   nlChineseRemainder(number *x, number *q,int rl, const coeffs C);
    7675number   nlFarey(number nN, number nP, const coeffs CF);
    7776
     
    29422941  {
    29432942    number p=CF->convFactoryNSingN(qnew,CF);
    2944     number p2=nlIntDiv(p,nlInit(2, CF),CF);
    2945     if (nlGreater(n,p2,CF))
    2946     {
    2947        number n2=nlSub(n,p,CF);
    2948        nlDelete(&n,CF);
     2943    number p2;
     2944    if (getCoeffType(CF) == n_Q) p2=nlIntDiv(p,nlInit(2, CF),CF);
     2945    else                         p2=CF->cfDiv(p,CF->cfInit(2, CF),CF);
     2946    if (CF->cfGreater(n,p2,CF))
     2947    {
     2948       number n2=CF->cfSub(n,p,CF);
     2949       CF->cfDelete(&n,CF);
    29492950       n=n2;
    29502951    }
    2951     nlDelete(&p2,CF);
    2952     nlDelete(&p,CF);
    2953   }
    2954   nlNormalize(n,CF);
     2952    CF->cfDelete(&p2,CF);
     2953    CF->cfDelete(&p,CF);
     2954  }
     2955  CF->cfNormalize(n,CF);
    29552956  return n;
    29562957}
    2957 number   nlChineseRemainder(number *x, number *q,int rl, const coeffs C)
     2958#if 0
     2959number nlChineseRemainder(number *x, number *q,int rl, const coeffs C)
    29582960{
    29592961  CFArray inv(rl);
    29602962  return nlChineseRemainderSym(x,q,rl,TRUE,inv,C);
    29612963}
     2964#endif
    29622965
    29632966static void nlClearContent(ICoeffsEnumerator& numberCollectionEnumerator, number& c, const coeffs cf)
  • libpolys/coeffs/longrat.h

    rb0c494 r8887b4  
    131131number nlMapGMP(number from, const coeffs src, const coeffs dst);
    132132#  endif
     133// for ring similiar to Q/Z (char 0 required):
     134number   nlChineseRemainderSym(number *x, number *q,int rl, BOOLEAN sym, CFArray &inv_cache,const coeffs CF);
     135
    133136
    134137#endif
Note: See TracChangeset for help on using the changeset viewer.