110 gfan::ZMatrix
equations = zc.getImpliedEquations();
111 int r = inequalities.getHeight();
112 int c = inequalities.getWidth();
124 gfan::ZMatrix newInequalities = inequalities.submatrix(1,0,r,c);
126 newEquations.appendRow(inequalities[0]);
127 gfan::ZCone eta = gfan::ZCone(newInequalities,newEquations);
129 gfan::ZVector
v = eta.getRelativeInteriorPoint();
130 gfan::ZVector
w = inequalities[0];
132 if (
bound.containsRelatively(v))
136 for (
int i=1;
i<r-1;
i++)
138 newInequalities = inequalities.submatrix(0,0,
i,c);
139 newInequalities.append(inequalities.submatrix(
i+1,0,r,c));
141 newEquations.appendRow(inequalities[
i]);
142 eta = gfan::ZCone(newInequalities,newEquations);
144 v = eta.getRelativeInteriorPoint();
146 if (
bound.containsRelatively(v))
151 newInequalities = inequalities.submatrix(0,0,r-1,c);
153 newEquations.appendRow(inequalities[r-1]);
154 eta = gfan::ZCone(newInequalities,newEquations);
157 v = eta.getRelativeInteriorPoint();
158 w = inequalities[r-1];
159 if (
bound.containsRelatively(v))
static CanonicalForm bound(const CFMatrix &M)
BOOLEAN inequalities(leftv res, leftv args)
std::set< facet, facet_compare > facets
const Variable & v
< [in] a sqrfree bivariate poly
BOOLEAN equations(leftv res, leftv args)