15 #include <gfanlib/config.h> 16 #ifdef HAVE_CDD_SETOPER_H 17 #include <cdd/setoper.h> 19 #include <cdd/cddmp.h> 20 #elif HAVE_CDDLIB_SETOPER_H 21 #include <cddlib/setoper.h> 22 #include <cddlib/cdd.h> 23 #include <cddlib/cddmp.h> 37 lists grfan(ideal inputIdeal,
int heuristic,
bool singleCone);
39 #include <gfanlib/gfanlib.h> 40 gfan::ZFan *
grfan(ideal inputIdeal,
int h,
bool singleCone);
116 inline void setUCN(
int n);
154 static float time_getConeNormals;
155 static float time_getCodim2Normals;
156 static float t_getExtremalRays;
157 static float t_ddPolyh;
158 static float time_flip;
159 static float time_flip2;
160 static float t_areEqual;
162 static float t_markings;
165 static float time_enqueue;
166 static float time_computeInv;
170 static float t_isParallel;
171 static unsigned parallelButNotEqual;
172 static unsigned numberOfFacetChecks;
212 inline int getCounter();
213 inline ring getBaseRing();
214 inline ring getRef2BaseRing();
215 inline void setBaseRing(ring
r);
216 inline void setIntPoint(
int64vec *iv);
218 inline void showIntPoint();
219 inline void setNumFacets();
220 inline int getNumFacets();
222 inline int getPredUCN();
223 volatile void showFacets(
short codim=1);
232 void noRevS(
gcone &gcRoot,
bool usingIntPoint=
FALSE);
234 void writeConeToFile(
const gcone &gc,
bool usingIntPoints=
FALSE);
235 void readConeFromFile(
int gcNum,
gcone *gc);
239 void getConeNormals(
const ideal &I,
bool compIntPoint=
FALSE);
240 void getCodim2Normals(
const gcone &gc);
241 void getExtremalRays(
const gcone &gc);
244 void flip2(
const ideal &gb,
facet *
f);
245 void computeInv(
const ideal &gb, ideal &inv,
const int64vec &
f);
247 inline ideal ffG(
const ideal &
H,
const ideal &
G);
248 inline void getGB(ideal
const &inputIdeal);
251 void preprocessInequalities(dd_MatrixPtr &
M);
252 ring rCopyAndAddWeight(
const ring &
r,
int64vec *ivw);
257 void makeInt(
const dd_MatrixPtr &
M,
const int line,
int64vec &n);
263 dd_MatrixPtr computeLinealitySpace();
264 inline bool iv64isStrictlyPositive(
const int64vec *);
266 void replaceDouble_ringorder_a_ByASingleOne();
gfan::ZFan * grfan(ideal inputIdeal, int h, bool singleCone)
int getUCN()
Get the UCN Returns the UCN iff this != NULL, else -1.
static int lengthOfSearchList
static int64vec * hilbertFunction
The hilbert function - for the homogeneous case.
void printFlipGB()
Print the flipped GB.
static dd_MatrixPtr dd_LinealitySpace
Matrix to contain the homogeneity/lineality space.
void setFlipGB(ideal I)
Store the flipped GB.
short codim
The codim of the facet.
dd_MatrixPtr ddFacets
At least as a workaround we store the irredundant facets of a matrix here.
void setFacetNormal(int64vec *iv)
Comparison operator.
static bool hasHomInput
is the ideal homogeneous?
int UCN
Universal Cone Number The number of the cone the facet belongs to, Set in getConeNormals() ...
lists lprepareResult(gcone *gc, const int n)
static int numVars
of variables in the ring
int64vec * interiorPoint
An interior point of the facet.
void printNormal() const
Method to print the facet normal.
const int64vec * getRef2InteriorPoint()
int64vec * getInteriorPoint()
ideal getFlipGB()
Return the flipped GB.
static int maxSize
Maximum size of the searchlist.
ideal flipGB
The Groebner basis on the other side of a shared facet.
void setInteriorPoint(int64vec *iv)
Store an interior point of the facet.
bool isFlippable
Boolean value to indicate whether a facet is flippable or not This is also used to mark facets that n...
int64vec * fNormal
Inner normal of the facet, describing it uniquely up to isomorphism.
std::pair< ideal, ring > flip(const ideal I, const ring r, const gfan::ZVector interiorPoint, const gfan::ZVector facetNormal, const gfan::ZVector adjustedInteriorPoint, const gfan::ZVector adjustedFacetNormal)
facet()
The default constructor.
int64vec ** gcRays
Array of intvecs representing the rays of the cone.
const int64vec * getRef2FacetNormal() const
Return a reference to the facet normal.
static int64vec * ivZeroVector
The zero vector.
void setUCN(int n)
Set the UCN.
ideal gcBasis
Contains the Groebner basis of the cone.
volatile void fDebugPrint()
Debugging function prints the facet normal an all (codim-2)-facets that belong to it...
facet * facetPtr
Pointer to the first facet.
int numFacets
of facets of the coneThis value is set by gcone::getConeNormals
~facet()
The default destructor.
int64vec * getFacetNormal() const
Returns the facet normal.
facet * shallowCopy(const facet &f)
A shallow copy of facets.
Implements the cone structure.