Changeset ac3fcca in git for factory/facFqBivarUtil.cc


Ignore:
Timestamp:
Jan 27, 2012, 10:29:46 AM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
5583e1b42c274997413efbdad76b287132f8fff4
Parents:
5335ba2fd90593fc954dfc07320a6302bf956290
git-author:
Martin Lee <martinlee84@web.de>2012-01-27 10:29:46+01:00
git-committer:
Oleksandr Motsak <motsak@mathematik.uni-kl.de>2012-02-10 14:16:43+01:00
Message:
chg: computation of G*oldQ
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqBivarUtil.cc

    r5335ba rac3fcca  
    483483  CanonicalForm logDeriv;
    484484
    485   CanonicalForm bufF= F;
    486   CanonicalForm oldF= mulMod2 (G, oldQ, xToL);
    487   bufF -= oldF;
    488   bufF= div (bufF, xToOldL);
     485  CanonicalForm bufF;
     486  if ((oldL > 100 && l - oldL < 50) || (oldL < 100 && l - oldL < 30))
     487  {
     488    bufF= F;
     489    CanonicalForm oldF= mulMod2 (G, oldQ, xToL);
     490    bufF -= oldF;
     491    bufF= div (bufF, xToOldL);
     492  }
     493  else
     494  {
     495    //middle product style computation of [G*oldQ]^{l}_{oldL}
     496    CanonicalForm G3= div (G, xToOldL);
     497    CanonicalForm Up= mulMod2 (G3, oldQ, xToLOldL);
     498    CanonicalForm xToOldL2= power (x, oldL/2);
     499    CanonicalForm G2= mod (G, xToOldL);
     500    CanonicalForm G1= div (G2, xToOldL2);
     501    CanonicalForm G0= mod (G2, xToOldL2);
     502    CanonicalForm oldQ1= div (oldQ, xToOldL2);
     503    CanonicalForm oldQ0= mod (oldQ, xToOldL2);
     504    CanonicalForm Mid= mulMod2 (G1, oldQ1, xToLOldL);
     505    //computation of Low might be faster using a real middle product?
     506    CanonicalForm Low= mulMod2 (G0, oldQ1, xToOldL)+mulMod2 (G1, oldQ0, xToOldL);
     507    Low= div (Low, xToOldL2);
     508    Up += Mid + Low;
     509    bufF= div (F, xToOldL);
     510    bufF -= Up;
     511  }
    489512
    490513  q= newtonDiv (bufF, G, xToLOldL);
Note: See TracChangeset for help on using the changeset viewer.