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;
209 gcone(ring r, ideal I);
247 inline ideal
ffG(
const ideal &
H,
const ideal &
G);
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.
void getCodim2Normals(const gcone &gc)
void getExtremalRays(const gcone &gc)
void replaceDouble_ringorder_a_ByASingleOne()
Exchange 2 ordertype_a by just 1.
void computeInv(const ideal &gb, ideal &inv, const int64vec &f)
static dd_MatrixPtr dd_LinealitySpace
Matrix to contain the homogeneity/lineality space.
void setIntPoint(int64vec *iv)
ideal ffG(const ideal &H, const ideal &G)
int64vec * getIntPoint(bool shallow=FALSE)
void setFlipGB(ideal I)
Store the flipped GB.
void makeInt(const dd_MatrixPtr &M, const int line, int64vec &n)
int64vec f2M(gcone *gc, facet *f, int n=1)
short codim
The codim of the facet.
void flip(ideal gb, facet *f)
dd_MatrixPtr ddFacets
At least as a workaround we store the irredundant facets of a matrix here.
dd_MatrixPtr computeLinealitySpace()
Compute the lineality space Ax=0 and return it as dd_MatrixPtr dd_LinealitySpace.
void getConeNormals(const ideal &I, bool compIntPoint=FALSE)
void setFacetNormal(int64vec *iv)
Comparison operator.
void readConeFromFile(int gcNum, gcone *gc)
static bool hasHomInput
is the ideal homogeneous?
void getGB(ideal const &inputIdeal)
ring rCopyAndAddWeight(const ring &r, int64vec *ivw)
int UCN
Universal Cone Number The number of the cone the facet belongs to, Set in getConeNormals()
lists lprepareResult(gcone *gc, const int n)
void preprocessInequalities(dd_MatrixPtr &M)
int64vec * interiorPoint
An interior point of the facet.
volatile void showFacets(short codim=1)
const int64vec * getRef2FacetNormal() const
Return a reference to the facet normal.
const int64vec * getRef2InteriorPoint()
int64vec * getInteriorPoint()
ideal getFlipGB()
Return the flipped GB.
static int maxSize
Maximum size of the searchlist.
void flip2(const ideal &gb, facet *f)
ideal flipGB
The Groebner basis on the other side of a shared facet.
int64vec * getFacetNormal() const
Returns the facet normal.
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...
ring rCopyAndAddWeight2(const ring &, const int64vec *, const int64vec *)
int64vec * fNormal
Inner normal of the facet, describing it uniquely up to isomorphism.
void interiorPoint(dd_MatrixPtr &M, int64vec &iv)
facet * enqueue2(facet *f)
facet()
The default constructor.
void writeConeToFile(const gcone &gc, bool usingIntPoints=FALSE)
int64vec ** gcRays
Array of intvecs representing the rays of the cone.
void printNormal() const
Method to print the facet normal.
bool iv64isStrictlyPositive(const int64vec *)
facet * enqueueNewFacets(facet *f)
void noRevS(gcone &gcRoot, bool usingIntPoint=FALSE)
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.
~facet()
The default destructor.
facet * shallowCopy(const facet &f)
A shallow copy of facets.
Implements the cone structure.