Changeset d1553c in git


Ignore:
Timestamp:
May 12, 2012, 11:58:32 PM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
3ed675898c2676dd8ccc1bcc862fa6d6b80b234e
Parents:
ea5ff1d5094b84bbc2e29abd61b17ca3343f5c23
git-author:
Martin Lee <martinlee84@web.de>2012-05-12 23:58:32+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-07-31 11:32:56+02:00
Message:
chg: use sqrf instead of sqrfPart
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqBivar.h

    rea5ff1d rd1553c  
    261261  decompress (contentXFactors, N);
    262262  decompress (contentYFactors, N);
    263   CFFList result, resultRoot;
     263  CFFList result;
    264264  if (F.inCoeffDomain())
    265265  {
     
    272272  vec_ZZ S;
    273273  F= compress (F, M, S);
    274   CanonicalForm pthRoot, A;
    275   CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, info.getAlpha());
    276   CFList buf, bufRoot;
    277   int p= getCharacteristic();
    278   int l;
    279   if (degree (pthRoot) > 0)
    280   {
    281     pthRoot= maxpthRoot (pthRoot, p, l);
    282     result= FpBiFactorize (pthRoot, false);
    283     result.removeFirst();
    284     for (CFFListIterator i= result; i.hasItem(); i++)
    285       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    286                              i.getItem().exp()*ipower (p,l));
    287     result= Union (result, contentXFactors);
    288     result= Union (result, contentYFactors);
    289     normalize (result);
    290     result.insert (CFFactor (LcF, 1));
    291     return result;
    292   }
    293   else
    294   {
    295     buf= biFactorize (sqrfP, info);
    296     A= F/LcF;
    297     result= multiplicity (A, buf);
    298     for (CFFListIterator i= result; i.hasItem(); i++)
    299       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    300                              i.getItem().exp());
    301   }
    302   if (degree (A) > 0)
    303   {
    304     resultRoot= FpBiFactorize (A, false);
    305     resultRoot.removeFirst();
    306     for (CFFListIterator i= resultRoot; i.hasItem(); i++)
    307       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    308                              i.getItem().exp());
    309     result= Union (result, resultRoot);
    310   }
     274
     275  CFFList sqrf= FpSqrf (F, false);
     276  CFList bufResult;
     277  sqrf.removeFirst();
     278  CFListIterator i;
     279  for (CFFListIterator iter= sqrf; iter.hasItem(); iter++)
     280  {
     281    bufResult= biFactorize (iter.getItem().factor(), info);
     282    for (i= bufResult; i.hasItem(); i++)
     283      result.append (CFFactor (N (decompress (i.getItem(), M, S)),
     284                               iter.getItem().exp()));
     285  }
     286
    311287  result= Union (result, contentXFactors);
    312288  result= Union (result, contentYFactors);
     
    386362  decompress (contentXFactors, N);
    387363  decompress (contentYFactors, N);
    388   CFFList result, resultRoot;
     364  CFFList result;
    389365  if (F.inCoeffDomain())
    390366  {
     
    397373  vec_ZZ S;
    398374  F= compress (F, M, S);
    399   CanonicalForm pthRoot, A, tmp;
    400   CanonicalForm sqrfP= sqrfPart (F/Lc(F), pthRoot, alpha);
    401   CFList buf, bufRoot;
    402   int p= getCharacteristic();
    403   int q= ipower (p, degree (getMipo (alpha)));
    404   int l;
    405   if (degree (pthRoot) > 0)
    406   {
    407     pthRoot= maxpthRoot (pthRoot, q, l);
    408     result= FqBiFactorize (pthRoot, alpha, false);
    409     result.removeFirst();
    410     for (CFFListIterator i= result; i.hasItem(); i++)
    411       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    412                              i.getItem().exp()*ipower (p,l));
    413     result= Union (result, contentXFactors);
    414     result= Union (result, contentYFactors);
    415     normalize (result);
    416     result.insert (CFFactor (LcF, 1));
    417     return result;
    418   }
    419   else
    420   {
    421     buf= biFactorize (sqrfP, info);
    422     A= F/LcF;
    423     result= multiplicity (A, buf);
    424     for (CFFListIterator i= result; i.hasItem(); i++)
    425       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    426                              i.getItem().exp());
    427   }
    428   if (degree (A) > 0)
    429   {
    430     resultRoot= FqBiFactorize (A, alpha, false);
    431     resultRoot.removeFirst();
    432     for (CFFListIterator i= resultRoot; i.hasItem(); i++)
    433       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    434                              i.getItem().exp());
    435     result= Union (result, resultRoot);
    436   }
     375
     376  CFFList sqrf= FqSqrf (F, alpha, false);
     377  CFList bufResult;
     378  sqrf.removeFirst();
     379  CFListIterator i;
     380  for (CFFListIterator iter= sqrf; iter.hasItem(); iter++)
     381  {
     382    bufResult= biFactorize (iter.getItem().factor(), info);
     383    for (i= bufResult; i.hasItem(); i++)
     384      result.append (CFFactor (N (decompress (i.getItem(), M, S)),
     385                               iter.getItem().exp()));
     386  }
     387
    437388  result= Union (result, contentXFactors);
    438389  result= Union (result, contentYFactors);
     
    513464  decompress (contentXFactors, N);
    514465  decompress (contentYFactors, N);
    515   CFFList result, resultRoot;
     466  CFFList result;
    516467  if (F.inCoeffDomain())
    517468  {
     
    524475  vec_ZZ S;
    525476  F= compress (F, M, S);
    526   CanonicalForm pthRoot, A;
    527   CanonicalForm sqrfP= sqrfPart (F/LcF, pthRoot, info.getAlpha());
    528   CFList buf;
    529   int p= getCharacteristic();
    530   int q= ipower (p, getGFDegree());
    531   int l;
    532   if (degree (pthRoot) > 0)
    533   {
    534     pthRoot= maxpthRoot (pthRoot, q, l);
    535     result= GFBiFactorize (pthRoot, false);
    536     result.removeFirst();
    537     for (CFFListIterator i= result; i.hasItem(); i++)
    538       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    539                              i.getItem().exp()*ipower (p,l));
    540     result= Union (result, contentXFactors);
    541     result= Union (result, contentYFactors);
    542     normalize (result);
    543     result.insert (CFFactor (LcF, 1));
    544     return result;
    545   }
    546   else
    547   {
    548     buf= biFactorize (sqrfP, info);
    549     A= F/LcF;
    550     result= multiplicity (A, buf);
    551     for (CFFListIterator i= result; i.hasItem(); i++)
    552       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    553                              i.getItem().exp());
    554   }
    555   if (degree (A) > 0)
    556   {
    557     resultRoot= GFBiFactorize (A, false);
    558     resultRoot.removeFirst();
    559     for (CFFListIterator i= resultRoot; i.hasItem(); i++)
    560       i.getItem()= CFFactor (N (decompress (i.getItem().factor(), M, S)),
    561                              i.getItem().exp());
    562     result= Union (result, resultRoot);
    563   }
     477
     478  CFFList sqrf= GFSqrf (F, false);
     479  CFList bufResult;
     480  sqrf.removeFirst();
     481  CFListIterator i;
     482  for (CFFListIterator iter= sqrf; iter.hasItem(); iter++)
     483  {
     484    bufResult= biFactorize (iter.getItem().factor(), info);
     485    for (i= bufResult; i.hasItem(); i++)
     486      result.append (CFFactor (N (decompress (i.getItem(), M, S)),
     487                               iter.getItem().exp()));
     488  }
     489
    564490  result= Union (result, contentXFactors);
    565491  result= Union (result, contentYFactors);
Note: See TracChangeset for help on using the changeset viewer.