37{
39
41 {
42
43 gfan::ZFan* zf = new gfan::ZFan(gfan::ZFan::fullFan(n));
44 return zf;
45 }
46 else
47 {
48 gfan::ZVector lowerHalfSpaceCondition = gfan::ZVector(n);
49 lowerHalfSpaceCondition[0] = -1;
50
51
52 int* expv = (
int*)
omAlloc((n+1)*
sizeof(int));
53 gfan::ZMatrix exponents = gfan::ZMatrix(0,n);
55 {
59 }
61
62
63 gfan::ZFan* zf = new gfan::ZFan(n);
64 int l = exponents.getHeight();
65 for (
int i=0;
i<
l;
i++)
66 {
67
69 if (onlyLowerHalfSpace)
71 for (
int j=0;
j<
l;
j++)
72 {
74 inequalities.appendRow(exponents[
i].toVector()-exponents[
j].toVector());
75 }
77 zc.canonicalize();
78 zf->insert(zc);
79 }
80 return zf;
81 }
82}
BOOLEAN inequalities(leftv res, leftv args)
gfan::ZVector intStar2ZVector(const int d, const int *i)
const CanonicalForm int s
#define omFreeSize(addr, size)
static void p_GetExpV(poly p, int *ev, const ring r)
static short rVar(const ring r)
#define rVar(r) (r->N)