2 #include <gfanlib/gfanlib.h> 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].toVector()-exponents[
j].toVector());
49 for (
int k=0;
k<
l;
k++)
52 if (zc.dimension()>=n-1)
69 int* expv = (
int*)
omAlloc((n+1)*
sizeof(int));
70 gfan::ZMatrix exponents = gfan::ZMatrix(0,n);
79 int l = exponents.getHeight();
80 gfan::ZVector lowerHalfSpaceCondition = gfan::ZVector(n);
81 lowerHalfSpaceCondition[0] = -1;
82 for (
int i=0;
i<
l;
i++)
84 for (
int j=
i+1;
j<
l;
j++)
86 gfan::ZMatrix equation = gfan::ZMatrix(0,n);
87 equation.appendRow(exponents[
i].toVector()-exponents[
j].toVector());
91 for (
int k=0;
k<
l;
k++)
92 if (
k!=
i &&
k!=
j)
inequalities.appendRow(exponents[
i].toVector()-exponents[
k].toVector());
94 if (zc.dimension()>=n-1)
implementation of the class tropicalStrategy
const CanonicalForm int s
static void p_GetExpV(poly p, int *ev, const ring r)
#define omFreeSize(addr, size)
ZConesSortedByDimension tropicalVarietySortedByDimension(const poly g, const ring r, const tropicalStrategy *currentCase)
static short rVar(const ring r)
#define rVar(r) (r->N)
BOOLEAN inequalities(leftv res, leftv args)
std::set< gfan::ZCone, ZConeCompareDimensionFirst > ZConesSortedByDimension
gfan::ZVector intStar2ZVector(const int d, const int *i)
bool restrictToLowerHalfSpace() const
returns true, if valuation non-trivial, false otherwise
std::set< gfan::ZCone > tropicalVariety(const poly g, const ring r, const tropicalStrategy *currentCase)