My Project
gitfan.h
Go to the documentation of this file.
1 #ifndef GITFAN_H
2 #define GITFAN_H
3 
4 #include "kernel/mod2.h"
5 
6 #if HAVE_GFANLIB
7 
10 
11 #include "Singular/ipid.h"
12 
13 
14 namespace gitfan
15 {
16 
17  class facet
18  {
19  gfan::ZCone eta;
20  gfan::ZVector interiorPoint;
21  gfan::ZVector facetNormal;
22 
23  public:
24 
25  facet();
26  facet(const facet &f);
27  facet(const gfan::ZCone &c, const gfan::ZVector &v, const gfan::ZVector &w);
28  ~facet();
29 
30  gfan::ZCone getEta() { return this->eta; };
31  gfan::ZVector getInteriorPoint() { return this->interiorPoint; };
32  gfan::ZVector getFacetNormal() { return this->facetNormal; };
33 
34  friend struct facet_compare;
35  };
36 
38  {
39  bool operator()(const facet &f, const facet &g) const
40  {
41  const gfan::ZVector v1 = f.interiorPoint;
42  const gfan::ZVector v2 = g.interiorPoint;
43 #ifndef SING_NDEBUG
44  assume(v1.size() == v2.size());
45 #endif
46  return v1 < v2;
47  }
48  };
49 
50  typedef std::set<facet,facet_compare> facets;
51 
52  void mergeFacets(facets &F, const facets &newFacets);
53 
54 }
55 
57 #endif
58 
59 #endif
int p
Definition: cfModGcd.cc:4078
g
Definition: cfModGcd.cc:4090
FILE * f
Definition: checklibs.c:9
gfan::ZCone eta
Definition: gitfan.h:19
gfan::ZCone getEta()
Definition: gitfan.h:30
gfan::ZVector facetNormal
Definition: gitfan.h:21
gfan::ZVector getFacetNormal()
Definition: gitfan.h:32
gfan::ZVector getInteriorPoint()
Definition: gitfan.h:31
gfan::ZVector interiorPoint
Definition: gitfan.h:20
const CanonicalForm & w
Definition: facAbsFact.cc:51
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:39
void gitfan_setup(SModulFunctions *p)
#define assume(x)
Definition: mod2.h:389
Definition: gitfan.cc:26
void mergeFacets(facets &F, const facets &newFacets)
Definition: gitfan.cc:77
std::set< facet, facet_compare > facets
Definition: gitfan.h:50
bool operator()(const facet &f, const facet &g) const
Definition: gitfan.h:39