37 interiorPoint(
f.interiorPoint),
38 facetNormal(
f.facetNormal)
44 assume(c.ambientDimension() == (
int)
v.size());
45 assume(c.ambientDimension() == (
int)
w.size());
57 assume(c.ambientDimension() == (
int)
v.size());
58 assume(c.ambientDimension() == (
int)
w.size());
70 assume(c.ambientDimension() == (
int)
v.size());
71 assume(c.ambientDimension() == (
int)
w.size());
98 if (
zc->contains(point))
129 if (
bound.containsRelatively(
v))
133 for (
int i=1;
i<r-1;
i++)
141 v = eta.getRelativeInteriorPoint();
143 if (
bound.containsRelatively(
v))
154 v = eta.getRelativeInteriorPoint();
156 if (
bound.containsRelatively(
v))
218 interiorPoint =
f.getInteriorPoint();
219 facetNormal =
f.getFacetNormal();
226 point =
mu * interiorPoint - facetNormal;
227 while (!
support.containsRelatively(point))
230 point =
mu * interiorPoint - facetNormal;
234 while ((
lambda.dimension() <
lambda.ambientDimension()) && !(
lambda.contains(interiorPoint)))
237 point =
mu * interiorPoint - facetNormal;
257 WerrorS(
"refineCones: unexpected parameters");
268 for (
int i=1;
i<=
k;
i++)
270 for (
int j=n-
k+1;
j<=n;
j++)
281 for (
int i=0;
i<n;
i++)
299 int k = (
int)(
long)
v->Data();
301 for (
int i=0;
i<
k;
i++)
307 while (!(
v & (1<<n)))
319 res->data = (
void*) L;
323 WerrorS(
"listOfAfacesToCheck: unexpected parameter");
347 unsigned int t =
af | (
af - 1);
363 WerrorS(
"nextAfaceToCheck: unexpected parameter");
390 res->data = (
void*) (
long) 0;
400 res->data = (
void*) (
long) 0;
406 res->data = (
void*) (
long) 1;
408 delete interiorPoint;
412 WerrorS(
"checkSigns: unexpected parameter");
427 for (
int i=1;
i<
l;
i++)
443 WerrorS(
"binaryToBigint: unexpected parameter");
460 for (
int i=0;
i<
k;
i++)
467 WerrorS(
"composeIntvecs: unexpected parameter");
495 res->data = (
void*) (
long) (-1);
509 res->data = (
void*) (
long) (-1);
530 res->data = (
void*) (
long) -1;
544 WerrorS(
"findPlaceToInsert: unexpected parameter");
BOOLEAN ambientDimension(leftv res, leftv args)
BOOLEAN equations(leftv res, leftv args)
BOOLEAN dimension(leftv res, leftv args)
gfan::ZVector randomPoint(const gfan::ZCone *zc, const int b)
BOOLEAN inequalities(leftv res, leftv args)
bigintmat * iv2bim(intvec *b, const coeffs C)
gfan::ZMatrix * bigintmatToZMatrix(const bigintmat &bim)
void lambda(int **points, int sizePoints)
static CanonicalForm bound(const CFMatrix &M)
coeffs basecoeffs() const
gfan::ZVector facetNormal
gfan::ZVector interiorPoint
Class used for (list of) interpreter objects.
INLINE_THIS void Init(int l=0)
static FORCE_INLINE number n_Copy(number n, const coeffs r)
return a copy of 'n'
static FORCE_INLINE number n_Add(number a, number b, const coeffs r)
return the sum of 'a' and 'b', i.e., a+b
static FORCE_INLINE BOOLEAN n_GreaterZero(number n, const coeffs r)
ordered fields: TRUE iff 'n' is positive; in Z/pZ: TRUE iff 0 < m <= roundedBelow(p/2),...
static FORCE_INLINE number n_InpNeg(number n, const coeffs r)
in-place negation of n MUST BE USED: n = n_InpNeg(n) (no copy is returned)
static FORCE_INLINE void n_Power(number a, int b, number *res, const coeffs r)
fill res with the power a^b
static FORCE_INLINE BOOLEAN n_Greater(number a, number b, const coeffs r)
ordered fields: TRUE iff 'a' is larger than 'b'; in Z/pZ: TRUE iff la > lb, where la and lb are the l...
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static FORCE_INLINE BOOLEAN n_Equal(number a, number b, const coeffs r)
TRUE iff 'a' and 'b' represent the same number; they may have different representations.
static BOOLEAN support(leftv res, leftv args)
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
static int binomial(int n, int k)
static gitfan::facets interiorFacets(const gfan::ZCone &zc, const gfan::ZCone &bound)
intvec * intToAface(unsigned int v0, int n, int k)
BOOLEAN listOfAfacesToCheck(leftv res, leftv args)
BOOLEAN findPlaceToInsert(leftv res, leftv args)
BOOLEAN checkSigns(leftv res, leftv args)
BOOLEAN refineCones(leftv res, leftv args)
BOOLEAN binaryToBigint(leftv res, leftv args)
static gfan::ZCone subcone(const lists &cones, const gfan::ZVector &point)
BOOLEAN nextAfaceToCheck(leftv res, leftv args)
BOOLEAN composeIntvecs(leftv res, leftv args)
static matrix mu(matrix A, const ring R)
void mergeFacets(facets &F, const facets &newFacets)
std::set< facet, facet_compare > facets
int status int void size_t count