10#include "gfanlib/gfanlib.h"
11#include "gfanlib/gfanlib_matrix.h"
28 std::cout <<
"ERROR: interiorPoint is not contained in the Groebner cone!" << std::endl
29 <<
"cone: " << std::endl
31 <<
"interiorPoint:" << std::endl
37 std::cout <<
"ERROR: interiorPoint is contained in the interior of the maximal Groebner cone!" << std::endl
38 <<
"cone: " << std::endl
40 <<
"interiorPoint:" << std::endl
47 std::cout <<
"ERROR: interiorPoint is not contained in the interior of a facet!" << std::endl
48 <<
"cone: " << std::endl
50 <<
"interiorPoint:" << std::endl
56 if(
dual.containsRelatively(facetNormal))
58 std::cout <<
"ERROR: facetNormal is not pointing outwards!" << std::endl
59 <<
"cone: " << std::endl
61 <<
"facetNormal:" << std::endl
62 << facetNormal << std::endl;
70 polynomialIdeal(
NULL),
79 polynomialIdeal(
NULL),
132 polynomialIdeal(
NULL),
133 polynomialRing(
NULL),
190 polynomialIdeal(
NULL),
191 polynomialRing(
NULL),
248 polynomialRing(
rCopy(r)),
306 polynomialIdeal(
NULL),
307 polynomialRing(
NULL),
310 currentStrategy(
sigma.getTropicalStrategy())
362 for (
int i=0;
i<
R.getHeight();
i++)
431 return (!
dual.contains(
w));
448 for (
int j=0;
j<
ray.getHeight();
j++)
std::pair< gfan::ZMatrix, gfan::ZMatrix > interiorPointsAndNormalsOfFacets(const gfan::ZCone zc, const std::set< gfan::ZVector > &exceptThesePoints, const bool onlyLowerHalfSpace)
gfan::ZMatrix interiorPointsOfFacets(const gfan::ZCone &zc, const std::set< gfan::ZVector > &exceptThese)
BOOLEAN equations(leftv res, leftv args)
BOOLEAN inequalities(leftv res, leftv args)
std::string toString(const gfan::ZCone *const c)
gfan::ZVector intStar2ZVector(const int d, const int *i)
gfan::ZVector expvToZVector(const int n, const int *expv)
const tropicalStrategy * currentStrategy
gfan::ZVector tropicalPoint() const
Returns a point in the tropical variety, if the groebnerCone contains one.
groebnerCones tropicalNeighbours() const
Returns a complete list of neighboring Groebner cones in the tropical variety.
groebnerCones groebnerNeighbours() const
Returns a complete list of neighboring Groebner cones.
groebnerCone & operator=(const groebnerCone &sigma)
bool contains(const gfan::ZVector &w) const
Returns true if Groebner cone contains w, false otherwise.
gfan::ZVector interiorPoint
bool checkFlipConeInput(const gfan::ZVector interiorPoint, const gfan::ZVector facetNormal) const
Debug tools.
ideal polynomialIdeal
ideal to which this Groebner cone belongs to
bool pointsOutwards(const gfan::ZVector w) const
Return 1 if w points is in the dual of the polyhedral cone, 0 otherwise.
gfan::ZCone polyhedralCone
groebnerCone flipCone(const gfan::ZVector &interiorPoint, const gfan::ZVector &facetNormal) const
Given an interior point on the facet and the outer normal factor on the facet, returns the adjacent g...
ring polynomialRing
ring in which the ideal exists
std::pair< ideal, ring > computeFlip(const ideal Ir, const ring r, const gfan::ZVector &interiorPoint, const gfan::ZVector &facetNormal) const
given an interior point of a groebner cone computes the groebner cone adjacent to it
bool restrictToLowerHalfSpace() const
returns true, if valuation non-trivial, false otherwise
std::pair< poly, int > checkInitialIdealForMonomial(const ideal I, const ring r, const gfan::ZVector &w=0) const
If given w, assuming w is in the Groebner cone of the ordering on r and I is a standard basis with re...
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
gfan::ZFan * toFanStar(groebnerCones setOfCones)
implementation of the class groebnerCone
std::set< groebnerCone, groebnerCone_compare > groebnerCones
ideal id_Copy(ideal h1, const ring r)
copy an ideal
long wDeg(const poly p, const ring r, const gfan::ZVector &w)
various functions to compute the initial form of polynomials and ideals
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
#define omFreeSize(addr, size)
static void p_Delete(poly *p, const ring r)
static void p_GetExpV(poly p, int *ev, const ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void rDelete(ring r)
unconditionally deletes fields in r
static short rVar(const ring r)
#define rVar(r) (r->N)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
gfan::ZMatrix raysOfTropicalStar(ideal I, const ring r, const gfan::ZVector &u, const tropicalStrategy *currentStrategy)
bool checkWeightVector(const ideal I, const ring r, const gfan::ZVector &weightVector, bool checkBorder)
bool checkPolyhedralInput(const gfan::ZCone zc, const gfan::ZVector p)
bool checkOrderingAndCone(const ring r, const gfan::ZCone zc)
bool checkPolynomialInput(const ideal I, const ring r)
implementation of the class tropicalStrategy