Changeset a02e2d in git for factory/cf_factor.cc


Ignore:
Timestamp:
Jun 18, 2020, 4:22:30 PM (4 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
4c1fc06f2d81e12a8e75a5419444cb157fbe45e9
Parents:
29b4ca5d4228a541041f482cfb466f618a3201bd
Message:
univariate factorization over Z via FLINT
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_factor.cc

    r29b4ca ra02e2d  
    547547      CanonicalForm ic=icontent(fz);
    548548      fz/=ic;
    549       #if 0 // #if defined(HAVE_FLINT) && (__FLINT_RELEASE>=20504)
    550       // use FLINT
    551       fmpz_poly_t f1;
    552       convertFacCF2Fmpz_poly_t (f1, fz);
    553       fmpz_poly_factor_t result;
    554       fmpz_poly_factor_init (result);
    555       fmpz_poly_factor_zassenhaus(result, f1);
    556       F= convertFLINTfmpz_poly_factor2FacCFFList (result, fz.mvar());
    557       fmpz_poly_factor_clear (result);
    558       fmpz_poly_clear (f1);
     549      if (fz.degree()==1)
     550      {
     551        F=CFFList(CFFactor(fz,1));
     552      }
     553      else
     554      #if defined(HAVE_FLINT) && (__FLINT_RELEASE>=20504)
     555      {
     556        // use FLINT
     557        fmpz_poly_t f1;
     558        convertFacCF2Fmpz_poly_t (f1, fz);
     559        fmpz_poly_factor_t result;
     560        fmpz_poly_factor_init (result);
     561        fmpz_poly_factor(result, f1);
     562        F= convertFLINTfmpz_poly_factor2FacCFFList (result, fz.mvar());
     563        fmpz_poly_factor_clear (result);
     564        fmpz_poly_clear (f1);
     565      }
    559566      if ( ! ic.isOne() )
    560567      {
     
    569576      }
    570577      goto end_char0;
    571       #elif defined HAVE_NTL
    572       //USE NTL
    573       ZZ c;
    574       vec_pair_ZZX_long factors;
    575       //factorize the converted polynomial
    576       factor(c,factors,convertFacCF2NTLZZX(fz));
    577 
    578       //convert the result back to Factory
    579       F=convertNTLvec_pair_ZZX_long2FacCFFList(factors,c,fz.mvar());
     578      #elif defined(HAVE_NTL)
     579      {
     580        //USE NTL
     581        ZZ c;
     582        vec_pair_ZZX_long factors;
     583        //factorize the converted polynomial
     584        factor(c,factors,convertFacCF2NTLZZX(fz));
     585
     586        //convert the result back to Factory
     587        F=convertNTLvec_pair_ZZX_long2FacCFFList(factors,c,fz.mvar());
     588      }
    580589      if ( ! ic.isOne() )
    581590      {
Note: See TracChangeset for help on using the changeset viewer.