24 std::set<gfan::ZCone> tropVar;
27 int* expv = (
int*)
omAlloc((n+1)*
sizeof(int));
28 gfan::ZMatrix exponents = gfan::ZMatrix(0,n);
37 int l = exponents.getHeight();
38 gfan::ZVector lowerHalfSpaceCondition = gfan::ZVector(n);
39 lowerHalfSpaceCondition[0] = -1;
40 for (
int i=0;
i<
l;
i++)
42 for (
int j=
i+1;
j<
l;
j++)
44 gfan::ZMatrix equation = gfan::ZMatrix(0,n);
45 equation.appendRow(exponents[
i]-exponents[
j]);
48 inequalities.appendRow(lowerHalfSpaceCondition);
49 for (
int k=0;
k<
l;
k++)
50 if (
k!=
i &&
k!=j) inequalities.appendRow(exponents[
i]-exponents[
k]);
51 gfan::ZCone zc = gfan::ZCone(inequalities,equation);
52 if (zc.dimension()>=n-1)
const CanonicalForm int s
static void p_GetExpV(poly p, int *ev, const ring r)
#define omFreeSize(addr, size)
static short rVar(const ring r)
#define rVar(r) (r->N)
BOOLEAN inequalities(leftv res, leftv args)
gfan::ZVector intStar2ZVector(const int d, const int *i)
bool restrictToLowerHalfSpace() const
returns true, if valuation non-trivial, false otherwise