Changeset 18a660 in git


Ignore:
Timestamp:
May 7, 2012, 12:46:27 PM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
d1dc39c88c35e4e841172de4d665ea81299444d6
Parents:
edd81896e7de840500b43eca5d7771d36a211f79
git-author:
Martin Lee <martinlee84@web.de>2012-05-07 12:46:27+02:00
git-committer:
Martin Lee <martinlee84@web.de>2012-05-07 18:19:00+02:00
Message:
chg: use FLINT in bivariate factorization
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facFqBivar.cc

    redd818 r18a660  
    4141#include "NTLconvert.h"
    4242
     43#ifdef HAVE_FLINT
     44#include "FLINTconvert.h"
     45#endif
     46
    4347TIMING_DEFINE_PRINT(fac_uni_factorizer)
    4448TIMING_DEFINE_PRINT(fac_hensel_lift12)
     
    145149{
    146150  Variable x= A.mvar();
    147   ASSERT (A.isUnivariate() || A.inCoeffDomain(),
     151  if (A.inCoeffDomain())
     152    return CFList();
     153  ASSERT (A.isUnivariate(),
    148154          "univariate polynomial expected or constant expected");
    149155  CFFList factorsA;
     
    215221  else
    216222  {
     223#ifdef HAVE_FLINT
     224    nmod_poly_t FLINTA;
     225    convertFacCF2nmod_poly_t (FLINTA, A);
     226    nmod_poly_factor_t result;
     227    nmod_poly_factor_init (result);
     228    mp_limb_t leadingCoeff= nmod_poly_factor (result, FLINTA);
     229    factorsA= convertFLINTnmod_poly_factor2FacCFFList (result, leadingCoeff, x);
     230    if (factorsA.getFirst().factor().inCoeffDomain())
     231      factorsA.removeFirst();
     232    nmod_poly_factor_clear (result);
     233    nmod_poly_clear (FLINTA);
     234#else
    217235    if (getCharacteristic() > 2)
    218236    {
     
    232250                                                          x);
    233251    }
     252#endif
    234253  }
    235254  CFList uniFactors;
Note: See TracChangeset for help on using the changeset viewer.