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);
209 gcone(ring r, ideal I);
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.
void printFlipGB()
Print the flipped GB.
void setFlipGB(ideal I)
Store the flipped GB.
short codim
The codim of the facet.
STATIC_VAR bool hasHomInput
is the ideal homogeneous?
dd_MatrixPtr ddFacets
At least as a workaround we store the irredundant facets of a matrix here.
void setFacetNormal(int64vec *iv)
Comparison operator.
int UCN
Universal Cone Number The number of the cone the facet belongs to, Set in getConeNormals() ...
lists lprepareResult(gcone *gc, const int n)
int64vec * interiorPoint
An interior point of the facet.
const int64vec * getRef2FacetNormal() const
Return a reference to the facet normal.
const int64vec * getRef2InteriorPoint()
int64vec * getInteriorPoint()
ideal getFlipGB()
Return the flipped GB.
STATIC_VAR int lengthOfSearchList
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...
EXTERN_VAR int gfanHeuristic
STATIC_VAR dd_MatrixPtr dd_LinealitySpace
Matrix to contain the homogeneity/lineality space.
int64vec * fNormal
Inner normal of the facet, describing it uniquely up to isomorphism.
STATIC_VAR int numVars
of variables in the ring
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.
void printNormal() const
Method to print the facet normal.
STATIC_VAR int maxSize
Maximum size of the searchlist.
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
STATIC_VAR int64vec * hilbertFunction
The hilbert function - for the homogeneous case.
~facet()
The default destructor.
STATIC_VAR int64vec * ivZeroVector
The zero vector.
facet * shallowCopy(const facet &f)
A shallow copy of facets.
Implements the cone structure.