[SCM] an open source computer algebra system branch, cleanedupstream, updated. 6125e540ca6d66c307958938a9d53b245507c323

Bernhard R. Link brlink at debian.org
Tue Apr 24 15:55:13 UTC 2012


The following commit has been merged in the cleanedupstream branch:
commit 179b0a869126be8f0ffbbdce247f924c8e379b2b
Author: Martin Lee <martinlee84 at web.de>
Date:   Mon Mar 5 23:56:39 2012 +0100

    chg: do not compute p^k in FLINT

diff --git a/factory/facMul.cc b/factory/facMul.cc
index c98092d..38e29a0 100644
--- a/factory/facMul.cc
+++ b/factory/facMul.cc
@@ -421,8 +421,8 @@ mulNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
       if (b.getp() != 0)
       {
         fmpz_t FLINTpk;
-        fmpz_init_set_ui (FLINTpk, b.getp());
-        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
+        fmpz_init (FLINTpk);
+        convertCF2Fmpz (FLINTpk, b.getpk());
         fmpz_mod_poly_t FLINTF, FLINTG;
         convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
         convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
@@ -430,6 +430,7 @@ mulNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
         CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF, F.mvar(), b);
         fmpz_mod_poly_clear (FLINTG);
         fmpz_mod_poly_clear (FLINTF);
+        fmpz_clear (FLINTpk);
         return result;
       }
       return mulFLINTQ (F, G);
@@ -543,8 +544,8 @@ modNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
       if (b.getp() != 0)
       {
         fmpz_t FLINTpk;
-        fmpz_init_set_ui (FLINTpk, b.getp());
-        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
+        fmpz_init (FLINTpk);
+        convertCF2Fmpz (FLINTpk, b.getpk());
         fmpz_mod_poly_t FLINTF, FLINTG;
         convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
         convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
@@ -552,6 +553,7 @@ modNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
         CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF,F.mvar(),b);
         fmpz_mod_poly_clear (FLINTG);
         fmpz_mod_poly_clear (FLINTF);
+        fmpz_clear (FLINTpk);
         return result;
       }
       return modFLINTQ (F, G);
@@ -685,8 +687,8 @@ divNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
       if (b.getp() != 0)
       {
         fmpz_t FLINTpk;
-        fmpz_init_set_ui (FLINTpk, b.getp());
-        fmpz_pow_ui (FLINTpk, FLINTpk, b.getk());
+        fmpz_init (FLINTpk);
+        convertCF2Fmpz (FLINTpk, b.getpk());
         fmpz_mod_poly_t FLINTF, FLINTG;
         convertFacCF2Fmpz_mod_poly_t (FLINTF, F, FLINTpk);
         convertFacCF2Fmpz_mod_poly_t (FLINTG, G, FLINTpk);
@@ -694,6 +696,7 @@ divNTL (const CanonicalForm& F, const CanonicalForm& G, const modpk& b)
         CanonicalForm result= convertFmpz_mod_poly_t2FacCF (FLINTF,F.mvar(),b);
         fmpz_mod_poly_clear (FLINTG);
         fmpz_mod_poly_clear (FLINTF);
+        fmpz_clear (FLINTpk);
         return result;
       }
       return divFLINTQ (F,G);

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list