[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