23 int* leadexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
24 int* tailexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
25 gfan::ZVector leadexpw = gfan::ZVector(n);
26 gfan::ZVector tailexpw = gfan::ZVector(n);
27 gfan::ZMatrix
equations = gfan::ZMatrix(0,n);
40 equations.appendRow(leadexpw-tailexpw);
47 return gfan::ZCone(gfan::ZMatrix(0, equations.getWidth()),equations);
59 poly
g = (poly) u->
Data();
74 ideal I = (ideal) u->
Data();
80 WerrorS(
"homogeneitySpace: unexpected parameters");
89 int* leadexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
90 int* tailexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
91 gfan::ZVector leadexpw = gfan::ZVector(n);
92 gfan::ZVector tailexpw = gfan::ZVector(n);
93 gfan::ZMatrix
equations = gfan::ZMatrix(0,n);
106 equations.appendRow(leadexpw-tailexpw);
112 gfan::ZVector lowerHalfSpaceCondition = gfan::ZVector(n);
113 lowerHalfSpaceCondition[0] = -1;
114 inequalities.appendRow(lowerHalfSpaceCondition);
118 return gfan::ZCone(inequalities,equations);
130 poly
g = (poly) u->
Data();
145 ideal I = (ideal) u->
Data();
151 WerrorS(
"lowerHomogeneitySpace: unexpected parameters");
156 gfan::ZCone
groebnerCone(
const ideal I,
const ring r,
const gfan::ZVector &
w)
160 int* leadexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
161 int* tailexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
162 gfan::ZVector leadexpw = gfan::ZVector(n);
163 gfan::ZVector tailexpw = gfan::ZVector(n);
178 inequalities.appendRow(leadexpw-tailexpw);
185 gfan::ZMatrix
equations = gfan::ZMatrix(0,n);
188 g = (poly) inI->m[
i];
198 equations.appendRow(leadexpw-tailexpw);
207 return gfan::ZCone(inequalities,equations);
221 poly
g = (poly) u->
Data();
224 gfan::ZVector* weightVector;
245 catch (
const std::exception& ex)
247 Werror(
"ERROR: %s",ex.what());
259 ideal I = (ideal) u->
Data();
260 gfan::ZVector* weightVector;
279 catch (
const std::exception& ex)
281 Werror(
"ERROR: %s",ex.what());
286 WerrorS(
"groebnerCone: unexpected parameters");
295 int* leadexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
296 int* tailexpv = (
int*)
omAlloc((n+1)*
sizeof(int));
297 gfan::ZVector leadexpw = gfan::ZVector(n);
298 gfan::ZVector tailexpw = gfan::ZVector(n);
312 inequalities.appendRow(leadexpw-tailexpw);
319 return gfan::ZCone(inequalities,gfan::ZMatrix(0, inequalities.getWidth()));
333 poly
g = (poly) u->
Data();
342 catch (
const std::exception& ex)
344 Werror(
"ERROR: %s",ex.what());
356 ideal I = (ideal) u->
Data();
361 catch (
const std::exception& ex)
363 Werror(
"ERROR: %s",ex.what());
368 WerrorS(
"maximalGroebnerCone: unexpected parameters");
381 poly
p = (poly) u->
Data();
382 gfan::ZVector* weightVector;
409 ideal I = (ideal) u->
Data();
410 gfan::ZVector* weightVector;
429 catch (
const std::exception& ex)
431 Werror(
"ERROR: %s",ex.what());
436 WerrorS(
"initial: unexpected parameters");
implementation of the class tropicalStrategy
Class used for (list of) interpreter objects.
gfan::ZCone homogeneitySpace(ideal I, ring r)
gfan::ZCone groebnerCone(const ideal I, const ring r, const gfan::ZVector &w)
gfan::ZFan * groebnerFan(const tropicalStrategy currentStrategy)
void inpTranspose()
transpose in place
gfan::ZFan * groebnerComplex(const tropicalStrategy currentStrategy)
bigintmat * iv2bim(intvec *b, const coeffs C)
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)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
void WerrorS(const char *s)
gfan::ZCone lowerHomogeneitySpace(ideal I, ring r)
gfan::ZCone maximalGroebnerCone(const ideal &I, const ring &r)
BOOLEAN inequalities(leftv res, leftv args)
Coefficient rings, fields and other domains suitable for Singular polynomials.
gfan::ZVector intStar2ZVector(const int d, const int *i)
BOOLEAN tropicalVariety(leftv res, leftv args)
void tropical_setup(SModulFunctions *p)
ideal idInit(int idsize, int rank)
initialise an ideal / module
const Variable & v
< [in] a sqrfree bivariate poly
BOOLEAN equations(leftv res, leftv args)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
BOOLEAN initial(leftv res, leftv args)
int(* iiAddCproc)(const char *libname, const char *procname, BOOLEAN pstatic, BOOLEAN(*func)(leftv res, leftv v))
void Werror(const char *fmt,...)
gfan::ZVector * bigintmatToZVector(const bigintmat &bim)