Changeset eca69d in git


Ignore:
Timestamp:
Jun 19, 2012, 6:30:43 PM (11 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'ad2543eab51733612ba7d118afc77edca719600e')
Children:
3ef0a0f54ff30379dd02f696dfdf144d6b523cfb
Parents:
53273d8bcb24900118b9a5adfd3b2e5353f82175
git-author:
Martin Lee <martinlee84@web.de>2012-06-19 18:30:43+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-07-31 11:49:17+02:00
Message:
chg: use 67dab66 also in other cases
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqBivar.cc

    r53273d reca69d  
    44044404                               CanonicalForm& bufF, CFList& factors, int& l,
    44054405                               int& factorsFound, bool beenInThres, CFMatrix& M,
    4406                                CFArray& Pi, CFList& diophant
     4406                               CFArray& Pi, CFList& diophant, bool symmetric,
     4407                               const CanonicalForm& evaluation
    44074408                              )
    44084409{
     
    44814482        henselLiftResume12 (F, factors, l, dummy, Pi, diophant, M);
    44824483        l= dummy;
     4484        if (i == 1 && degree (F)%4==0 && symmetric && factors.length() == 2 &&
     4485            LC (F,1).inCoeffDomain() &&
     4486           (degree (factors.getFirst(), 1) == degree (factors.getLast(),1)))
     4487        {
     4488          Variable x= Variable (1);
     4489          CanonicalForm g, h, gg, hh, multiplier1, multiplier2, check1, check2;
     4490          int m= degree (F)/4+1;
     4491          g= factors.getFirst();
     4492          h= factors.getLast();
     4493          g= mod (g, power (y,m));
     4494          h= mod (h, power (y,m));
     4495          g= g (y-evaluation, y);
     4496          h= h (y-evaluation, y);
     4497          gg= mod (swapvar (g,x,y),power (x,m));
     4498          gg= gg (y + evaluation, y);
     4499          multiplier1= factors.getLast()[m-1][0]/gg[m-1][0];
     4500          gg= div (gg, power (y,m));
     4501          gg= gg*power (y,m);
     4502          hh= mod (swapvar (h,x,y),power (x,m));
     4503          hh= hh (y + evaluation, y);
     4504          multiplier2= factors.getFirst()[m-1][0]/hh[m-1][0];
     4505          hh= div (hh, power (y,m));
     4506          hh= hh*power (y,m);
     4507          gg= multiplier1*gg+mod (factors.getLast(), power (y,m));
     4508          hh= multiplier2*hh+mod (factors.getFirst(), power (y,m));
     4509          check1= gg (y-evaluation,y);
     4510          check2= hh (y-evaluation,y);
     4511          check1= swapvar (check1, x, y);
     4512          if (check1/Lc (check1) == check2/Lc (check2))
     4513          {
     4514            result.append (gg);
     4515            result.append (hh);
     4516            delete [] liftPre;
     4517            delete [] factorsFoundIndex;
     4518            return result;
     4519          }
     4520        }
    44834521      }
    44844522      else
     
    50575095    result= earlyReconstructionAndLifting (F, NTLNe, bufF, bufUniFactors, l,
    50585096                                           factorsFound, beenInThres, M, Pi,
    5059                                            diophant
     5097                                           diophant, symmetric, evaluation
    50605098                                          );
    50615099
Note: See TracChangeset for help on using the changeset viewer.