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

Bernhard R. Link brlink at debian.org
Tue Apr 24 15:53:02 UTC 2012


The following commit has been merged in the cleanedupstream branch:
commit b9522e3f903b06047314062e74f8ebf42ddf0bdd
Author: Hans Schoenemann <hannes at mathematik.uni-kl.de>
Date:   Fri Feb 10 11:29:27 2012 +0100

    chg: simplified newtonPolytope

diff --git a/Singular/bbpolytope.cc b/Singular/bbpolytope.cc
index 7149d25..070d6d5 100644
--- a/Singular/bbpolytope.cc
+++ b/Singular/bbpolytope.cc
@@ -472,23 +472,17 @@ BOOLEAN newtonPolytope(leftv res, leftv args)
   if ((u != NULL) && (u->Typ() == POLY_CMD))
   {
     poly p = (poly)u->Data();
-    int r = rVar(currRing);
-    gfan::ZMatrix zm(1,r+1);
-    int *leadexpv = (int*)omAlloc((r+1)*sizeof(int));
-    pGetExpV(p,leadexpv);
-    gfan::ZVector zv = intStar2ZVectorWithLeadingOne(r, leadexpv);
-    zm.appendRow(zv);
-    poly pNextTerm = p;
-    while(pNext(pNextTerm)!=NULL)
+    int N = rVar(currRing);
+    gfan::ZMatrix zm(1,N+1);
+    int *leadexpv = (int*)omAlloc((N+1)*sizeof(int));
+    while (p!=NULL)
     {
-      pNextTerm=pNext(pNextTerm);
-      int *tailexpv=(int*)omAlloc((r+1)*sizeof(int));
-      pGetExpV(pNextTerm,tailexpv);
-      gfan::ZVector zv = intStar2ZVectorWithLeadingOne(r, tailexpv);
+      pGetExpV(p,leadexpv);
+      gfan::ZVector zv = intStar2ZVectorWithLeadingOne(r, leadexpv);
       zm.appendRow(zv);
-      omFree(tailexpv);
+      pIter(p);
     }
-    omFree(leadexpv);
+    omFreeSize(leadexpv,(N+1)*sizeof(int));
     gfan::ZCone* zc = new gfan::ZCone();
     *zc = gfan::ZCone::givenByRays(zm, gfan::ZMatrix(0, zm.getWidth()));
     res->rtyp = polytopeID;

-- 
an open source computer algebra system



More information about the debian-science-commits mailing list