 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the source code of this file.
|
groebnerCone | groebnerStartingCone (const tropicalStrategy ¤tStrategy) |
|
std::pair< gfan::ZVector, groebnerCone > | tropicalStartingPoint (const ideal I, const ring r, const tropicalStrategy ¤tStrategy) |
| Computes a starting point outside the lineatliy space by traversing the Groebner fan, checking each cone whether it contains a ray in the tropical variety. More...
|
|
std::pair< gfan::ZVector, groebnerCone > | tropicalStartingDataViaGroebnerFan (const ideal I, const ring r, const tropicalStrategy ¤tStrategy) |
| Computes a starting point outside the lineatliy space by traversing the Groebner fan, checking each cone whether it contains a ray in the tropical variety. More...
|
|
BOOLEAN | positiveTropicalStartingPoint (leftv res, leftv args) |
|
BOOLEAN | nonNegativeTropicalStartingPoint (leftv res, leftv args) |
|
BOOLEAN | negativeTropicalStartingPoint (leftv res, leftv args) |
|
BOOLEAN | nonPositiveTropicalStartingPoint (leftv res, leftv args) |
|
BOOLEAN | tropicalStartingPoint (leftv res, leftv args) |
|
static gfan::ZCone | linealitySpaceOfGroebnerFan (const ideal I, const ring r) |
|
ring | createTraversalStartingRing (const ring s, const gfan::ZMatrix &startingPoints, const tropicalStrategy ¤tStrategy) |
|
groebnerCone | tropicalStartingCone (const tropicalStrategy ¤tStrategy) |
|
BOOLEAN | tropicalStartingCone (leftv res, leftv args) |
|
◆ createTraversalStartingRing()
Definition at line 338 of file startingCone.cc.
347 int h = startingPoints.getHeight();
349 s0->block0 = (
int*)
omAlloc0((
h+3)*
sizeof(int));
350 s0->block1 = (
int*)
omAlloc0((
h+3)*
sizeof(int));
351 s0->wvhdl = (
int**)
omAlloc0((
h+3)*
sizeof(
int**));
352 for (
int i=0;
i<
h;
i++)
◆ groebnerStartingCone()
◆ linealitySpaceOfGroebnerFan()
static gfan::ZCone linealitySpaceOfGroebnerFan |
( |
const ideal |
I, |
|
|
const ring |
r |
|
) |
| |
|
static |
◆ negativeTropicalStartingPoint()
Definition at line 191 of file startingCone.cc.
196 ideal I = (ideal) u->
Data();
202 for (std::set<gfan::ZCone>::iterator zc=Tg.begin(); zc!=Tg.end(); zc++)
204 gfan::ZMatrix ray = zc->extremeRays();
205 for (
int i=0;
i<ray.getHeight();
i++)
207 gfan::ZVector negatedRay = gfan::Integer(-1)*ray[
i].toVector();
208 if (negatedRay.isPositive())
220 WerrorS(
"negativeTropicalStartingPoint: ideal not principal");
223 WerrorS(
"negativeTropicalStartingPoint: unexpected parameters");
◆ nonNegativeTropicalStartingPoint()
Definition at line 156 of file startingCone.cc.
161 ideal I = (ideal) u->
Data();
167 for (std::set<gfan::ZCone>::iterator zc=Tg.begin(); zc!=Tg.end(); zc++)
169 gfan::ZMatrix ray = zc->extremeRays();
170 for (
int i=0;
i<ray.getHeight();
i++)
172 if (ray[
i].toVector().isNonNegative())
184 WerrorS(
"nonNegativeTropicalStartingPoint: ideal not principal");
187 WerrorS(
"nonNegativeTropicalStartingPoint: unexpected parameters");
◆ nonPositiveTropicalStartingPoint()
Definition at line 227 of file startingCone.cc.
232 ideal I = (ideal) u->
Data();
238 for (std::set<gfan::ZCone>::iterator zc=Tg.begin(); zc!=Tg.end(); zc++)
240 gfan::ZMatrix ray = zc->extremeRays();
241 for (
int i=0;
i<ray.getHeight();
i++)
243 gfan::ZVector negatedRay = gfan::Integer(-1)*ray[
i].toVector();
244 if (negatedRay.isNonNegative())
256 WerrorS(
"nonPositiveTropicalStartingPoint: ideal not principal");
259 WerrorS(
"nonPositiveTropicalStartingPoint: unexpected parameters");
◆ positiveTropicalStartingPoint()
Definition at line 121 of file startingCone.cc.
126 ideal I = (ideal) u->
Data();
132 for (std::set<gfan::ZCone>::iterator zc=Tg.begin(); zc!=Tg.end(); zc++)
134 gfan::ZMatrix ray = zc->extremeRays();
135 for (
int i=0;
i<ray.getHeight();
i++)
137 if (ray[
i].toVector().isPositive())
149 WerrorS(
"positiveTropicalStartingPoint: ideal not principal");
152 WerrorS(
"positiveTropicalStartingPoint: unexpected parameters");
◆ tropicalStartingCone() [1/2]
Definition at line 372 of file startingCone.cc.
378 currentStrategy.
reduce(I,r);
387 for (
int i=0;
i<
k;
i++)
421 gfan::ZVector startingPoint = startingData.first;
443 for (
int i=0;
i<
k;
i++)
449 for (
int i=0;
i<
k;
i++)
475 for (
int i=0;
i<
k;
i++)
505 gfan::ZVector startingPoint = startingData.first;
512 ideal inI =
initial(I,r,startingPoint);
520 ideal J =
lift(I,r,inJ,
s);
530 ring rShortcut =
rCopy0(r);
538 for (
int i=0;
i<
k;
i++)
563 inJShortcut =
initial(inJShortcut,sShortcut,interiorPoint);
564 inI =
initial(inI,r,interiorPoint);
578 for (
int i=0;
i<
k;
i++)
580 if(inJShortcut->m[
i]!=
NULL)
590 for (
int i=0;
i<
k;
i++)
596 for (
int i=0;
i<
k;
i++)
◆ tropicalStartingCone() [2/2]
Definition at line 612 of file startingCone.cc.
619 ideal I = (ideal) u->
CopyD();
623 number
p = (number)
v->Data();
631 res->data = (
char*) startingCone;
647 WerrorS(
"tropicalStartingCone: unexpected parameters");
◆ tropicalStartingDataViaGroebnerFan()
Computes a starting point outside the lineatliy space by traversing the Groebner fan, checking each cone whether it contains a ray in the tropical variety.
Returns a point in the tropical variety and a maximal Groebner cone containing the point.
Definition at line 80 of file startingCone.cc.
85 gfan::ZVector startingPoint = sigma.tropicalPoint();
86 if (startingPoint.size() > 0)
87 return std::make_pair(startingPoint,sigma);
93 workingList.insert(sigma);
94 while (!workingList.empty())
98 for (groebnerCones::iterator
tau = neighbours.begin();
tau!=neighbours.end();
tau++)
102 if (workingList.count(*
tau) == 0)
104 startingPoint =
tau->tropicalPoint();
105 if (startingPoint.size() > 0)
106 return std::make_pair(startingPoint,*
tau);
108 workingList.insert(*
tau);
112 workingList.erase(sigma);
116 gfan::ZVector emptyVector = gfan::ZVector(0);
118 return std::pair<gfan::ZVector,groebnerCone>(emptyVector,emptyCone);
◆ tropicalStartingPoint() [1/2]
Computes a starting point outside the lineatliy space by traversing the Groebner fan, checking each cone whether it contains a ray in the tropical variety.
Returns a point in the tropical variety and a maximal Groebner cone containing the point.
Definition at line 33 of file startingCone.cc.
38 gfan::ZVector startingPoint = sigma.tropicalPoint();
39 if (startingPoint.size() > 0)
40 return std::make_pair(startingPoint,sigma);
46 workingList.insert(sigma);
47 while (!workingList.empty())
51 for (groebnerCones::iterator
tau = neighbours.begin();
tau!=neighbours.end();
tau++)
55 if (workingList.count(*
tau) == 0)
57 startingPoint =
tau->tropicalPoint();
58 if (startingPoint.size() > 0)
59 return std::make_pair(startingPoint,*
tau);
61 workingList.insert(*
tau);
65 workingList.erase(sigma);
69 gfan::ZVector emptyVector = gfan::ZVector(0);
71 return std::pair<gfan::ZVector,groebnerCone>(emptyVector,emptyCone);
◆ tropicalStartingPoint() [2/2]
Definition at line 263 of file startingCone.cc.
268 ideal I = (ideal) u->
Data();
280 gfan::ZCone C = *(Tg.begin());
281 gfan::ZMatrix
rays = C.extremeRays();
282 if (
rays.getHeight()==0)
284 gfan::ZMatrix lin = C.generatorsOfLinealitySpace();
293 gfan::ZCone C0 = currentStrategy.getHomogeneitySpace();
294 if (C0.dimension()==currentStrategy.getExpectedDimension())
296 gfan::ZMatrix lin = C0.generatorsOfLinealitySpace();
302 gfan::ZVector startingPoint = startingData.first;
307 WerrorS(
"tropicalStartingPoint: unexpected parameters");
◆ tropicalStartingPoints
gfan::ZMatrix tropicalStartingPoints |
bool isValuationTrivial() const
int idElem(const ideal F)
count non-zero elements
std::set< groebnerCone, groebnerCone_compare > groebnerCones
ideal lift(const ideal J, const ring r, const ideal inI, const ring s)
bool reduce(ideal I, const ring r) const
reduces the generators of an ideal I so that the inequalities and equations of the Groebner cone can ...
groebnerCone tropicalStartingCone(const tropicalStrategy ¤tStrategy)
int getExpectedDimension() const
returns the expected Dimension of the polyhedral output
bigintmat * zVectorToBigintmat(const gfan::ZVector &zv)
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
Class used for (list of) interpreter objects.
gfan::ZVector intStar2ZVector(const int d, const int *i)
ring rCopy0(const ring r, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
static short rVar(const ring r)
#define rVar(r) (r->N)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
#define omFreeSize(addr, size)
gfan::ZMatrix tropicalStartingPoints
static gfan::ZCone linealitySpaceOfGroebnerFan(const ideal I, const ring r)
ideal getPolynomialIdeal() const
int * ZVectorToIntStar(const gfan::ZVector &v, bool &overflow)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
ring getShortcutRing() const
ring getPolynomialRing() const
ring createTraversalStartingRing(const ring s, const gfan::ZMatrix &startingPoints, const tropicalStrategy ¤tStrategy)
BOOLEAN rays(leftv res, leftv args)
ideal gfanlib_kStd_wrapper(ideal I, ring r, tHomog h=testHomog)
static void p_GetExpV(poly p, int *ev, const ring r)
gfan::ZCone groebnerCone(const ideal I, const ring r, const gfan::ZVector &w)
gfan::ZFan * groebnerFan(const tropicalStrategy currentStrategy)
void rDelete(ring r)
unconditionally deletes fields in r
ring getStartingRing() const
returns the polynomial ring over the valuation ring
static void p_Delete(poly *p, const ring r)
static FORCE_INLINE coeffs nCopyCoeff(const coeffs r)
"copy" coeffs, i.e. increment ref
void tau(int **points, int sizePoints, int k)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static number p_SetCoeff(poly p, number n, ring r)
std::pair< gfan::ZVector, groebnerCone > tropicalStartingDataViaGroebnerFan(const ideal I, const ring r, const tropicalStrategy ¤tStrategy)
Computes a starting point outside the lineatliy space by traversing the Groebner fan,...
void WerrorS(const char *s)
bool areIdealsEqual(ideal I, ring r, ideal J, ring s)
BOOLEAN equations(leftv res, leftv args)
const Variable & v
< [in] a sqrfree bivariate poly
gfan::ZVector getInteriorPoint() const
number getUniformizingParameter() const
returns the uniformizing parameter in the valuation ring
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
const CanonicalForm int s
BOOLEAN tropicalVariety(leftv res, leftv args)
poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
gfan::ZCone getPolyhedralCone() const
ideal getStartingIdeal() const
returns the input ideal
void nKillChar(coeffs r)
undo all initialisations
groebnerCones groebnerNeighbours() const
Returns a complete list of neighboring Groebner cones.
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...