My Project
Loading...
Searching...
No Matches
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
14namespace 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