Changeset cac0f8 in git


Ignore:
Timestamp:
Jun 17, 2020, 10:17:41 PM (3 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '8d54773d6c9e2f1d2593a28bc68b7eeab54ed529')
Children:
329dd32beeab3db0280ea4a24f56b6a03cf155c7
Parents:
6e12a4509235103a5e009837c0a1ae25ff078e5b
Message:
temp. disable factore over Z via FLINT
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/cf_factor.cc

    r6e12a4 rcac0f8  
    545545    if ( f.isUnivariate() )
    546546    {
    547       #ifdef HAVE_NTL
    548       //USE NTL
    549547      CanonicalForm ic=icontent(fz);
    550548      fz/=ic;
    551       ZZ c;
    552       vec_pair_ZZX_long factors;
    553       //factorize the converted polynomial
    554       factor(c,factors,convertFacCF2NTLZZX(fz));
    555 
    556       //convert the result back to Factory
    557       F=convertNTLvec_pair_ZZX_long2FacCFFList(factors,c,fz.mvar());
     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);
    558559      if ( ! ic.isOne() )
    559560      {
     
    567568          F.insert( CFFactor( ic ) );
    568569      }
     570      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());
     580      if ( ! ic.isOne() )
     581      {
     582        if ( F.getFirst().factor().inCoeffDomain() )
     583        {
     584          CFFactor new_first( F.getFirst().factor() * ic );
     585          F.removeFirst();
     586          F.insert( new_first );
     587        }
     588        else
     589          F.insert( CFFactor( ic ) );
     590      }
    569591      else
    570592      {
     
    575597        }
    576598      }
    577       if(isOn(SW_USE_NTL_SORT)) F.sort(cmpCF);
    578       return F;
    579       #endif
    580       #if defined(HAVE_FLINT) && (__FLINT_RELEASE>=20504)
    581       // use FLINT
    582       fmpz_poly_t f1;
    583       convertFacCF2Fmpz_poly_t (f1, f);
    584       fmpz_poly_factor_t result;
    585       fmpz_poly_factor_init (result);
    586       fmpz_poly_factor_zassenhaus(result, f1);
    587       F= convertFLINTfmpz_poly_factor2FacCFFList (result, f.mvar());
    588       fmpz_poly_factor_clear (result);
    589       fmpz_poly_clear (f1);
    590       if(isOn(SW_USE_NTL_SORT)) F.sort(cmpCF);
    591       return F;
    592       #endif
    593       #if !defined(AHE_NTL) && !defined(HAVE_FLINT)
     599      goto end_char0;
     600      #else
    594601      factoryError ("univariate factorization over Z depends on NTL/FLINT(missing)");
    595602      return CFFList (CFFactor (f, 1));
     
    616623    }
    617624
     625end_char0:
    618626    if ( on_rational )
    619627      On(SW_RATIONAL);
Note: See TracChangeset for help on using the changeset viewer.