Changeset e785e9 in git for factory/facMul.cc


Ignore:
Timestamp:
Feb 17, 2012, 11:38:58 AM (12 years ago)
Author:
Martin Lee <martinlee84@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
3f8663db4115fa2cabdf28fc5755f5b71aca1c8f
Parents:
9c98c2bf389aa260ab259cce1b827e8ee1bd9453
git-author:
Martin Lee <martinlee84@web.de>2012-02-17 11:38:58+01:00
git-committer:
Martin Lee <martinlee84@web.de>2012-04-04 14:42:26+02:00
Message:
chg: use FLINT for operations over Z/p (for non word size p)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • factory/facMul.cc

    r9c98c2 re785e9  
    409409    {
    410410      if (b.getp() != 0)
    411         return b (mulFLINTQ (F, G));
     411      {
     412        fmpz_t FLINTpk;
     413        fmpz_init_set_ui (FLINTpk, b.getp());
     414        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
     415        fmpz_mod_poly_t FLINTF, FLINTG;
     416        convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
     417        convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
     418        fmpz_mod_poly_mul (FLINTF, FLINTF, FLINTG);
     419        CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF, F.mvar(), b);
     420        fmpz_mod_poly_clear (FLINTG);
     421        fmpz_mod_poly_clear (FLINTF);
     422        return result;
     423      }
    412424      return mulFLINTQ (F, G);
    413425    }
     
    483495      if (b.getp() != 0)
    484496      {
    485         ZZ NTLpk= power_ZZ (b.getp(), b.getk());
    486         ZZ_p::init (NTLpk);
    487         ZZX ZZf= convertFacCF2NTLZZX (F);
    488         ZZX ZZg= convertFacCF2NTLZZX (G);
    489         ZZ_pX NTLf= to_ZZ_pX (ZZf);
    490         ZZ_pX NTLg= to_ZZ_pX (ZZg);
    491         rem (NTLf, NTLf, NTLg);
    492         return b (convertNTLZZX2CF (to_ZZX (NTLf), F.mvar()));
     497        fmpz_t FLINTpk;
     498        fmpz_init_set_ui (FLINTpk, b.getp());
     499        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
     500        fmpz_mod_poly_t FLINTF, FLINTG;
     501        convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
     502        convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
     503        fmpz_mod_poly_rem (FLINTF, FLINTF, FLINTG);
     504        CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF,F.mvar(),b);
     505        fmpz_mod_poly_clear (FLINTG);
     506        fmpz_mod_poly_clear (FLINTF);
     507        return result;
    493508      }
    494509      return modFLINTQ (F, G);
     
    582597      if (b.getp() != 0)
    583598      {
    584         ZZ NTLpk= power_ZZ (b.getp(), b.getk());
    585         ZZ_p::init (NTLpk);
    586         ZZX ZZf= convertFacCF2NTLZZX (F);
    587         ZZX ZZg= convertFacCF2NTLZZX (G);
    588         ZZ_pX NTLf= to_ZZ_pX (ZZf);
    589         ZZ_pX NTLg= to_ZZ_pX (ZZg);
    590         div (NTLf, NTLf, NTLg);
    591         return b (convertNTLZZX2CF (to_ZZX (NTLf), F.mvar()));
     599        fmpz_t FLINTpk;
     600        fmpz_init_set_ui (FLINTpk, b.getp());
     601        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
     602        fmpz_mod_poly_t FLINTF, FLINTG;
     603        convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
     604        convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
     605        fmpz_mod_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG);
     606        CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF,F.mvar(),b);
     607        fmpz_mod_poly_clear (FLINTG);
     608        fmpz_mod_poly_clear (FLINTF);
     609        return result;
    592610      }
    593611      return divFLINTQ (F,G);
Note: See TracChangeset for help on using the changeset viewer.