 |
My Project
UNKNOWN_GIT_VERSION
|
#include "kernel/mod2.h"
#include "misc/intvec.h"
#include "coeffs/bigintmat.h"
#include "Singular/ipid.h"
#include "gfanlib/gfanlib.h"
Go to the source code of this file.
◆ bbcone_setup()
◆ interiorPointsAndNormalsOfFacets()
std::pair<gfan::ZMatrix,gfan::ZMatrix> interiorPointsAndNormalsOfFacets |
( |
const gfan::ZCone |
zc, |
|
|
const std::set< gfan::ZVector > & |
exceptThesePoints = std::set< gfan::ZVector >() , |
|
|
const bool |
onlyLowerHalfSpace = false |
|
) |
| |
Definition at line 1902 of file bbcone.cc.
1905 gfan::ZMatrix
equations = zc.getImpliedEquations();
1910 gfan::ZMatrix relativeInteriorPoints = gfan::ZMatrix(0,c);
1911 gfan::ZMatrix outerFacetNormals = gfan::ZMatrix(0,c);
1913 return std::make_pair(relativeInteriorPoints,outerFacetNormals);
1918 gfan::ZMatrix newInequalities =
inequalities.submatrix(1,0,r,c);
1921 gfan::ZCone
facet = gfan::ZCone(newInequalities,newEquations);
1922 gfan::ZVector interiorPoint =
facet.getRelativeInteriorPoint();
1923 if (onlyLowerHalfSpace==
false || interiorPoint[0].
sign()<0)
1925 if (exceptThesePoints.count(interiorPoint)==0)
1927 relativeInteriorPoints.appendRow(interiorPoint);
1928 outerFacetNormals.appendRow(-
inequalities[0].toVector());
1933 for (
int i=1;
i<r-1;
i++)
1939 facet = gfan::ZCone(newInequalities,newEquations);
1940 interiorPoint =
facet.getRelativeInteriorPoint();
1941 if (onlyLowerHalfSpace==
false || interiorPoint[0].
sign()<0)
1943 if (exceptThesePoints.count(interiorPoint)==0)
1945 relativeInteriorPoints.appendRow(interiorPoint);
1955 facet = gfan::ZCone(newInequalities,newEquations);
1956 interiorPoint =
facet.getRelativeInteriorPoint();
1957 if (onlyLowerHalfSpace==
false || interiorPoint[0].
sign()<0)
1959 if (exceptThesePoints.count(interiorPoint)==0)
1961 relativeInteriorPoints.appendRow(interiorPoint);
1962 outerFacetNormals.appendRow(-
inequalities[r-1].toVector());
1966 return std::make_pair(relativeInteriorPoints,outerFacetNormals);
◆ interiorPointsOfFacets()
gfan::ZMatrix interiorPointsOfFacets |
( |
const gfan::ZCone & |
zc, |
|
|
const std::set< gfan::ZVector > & |
exceptThese = std::set< gfan::ZVector >() |
|
) |
| |
Definition at line 1848 of file bbcone.cc.
1851 gfan::ZMatrix
equations = zc.getImpliedEquations();
1856 gfan::ZMatrix relativeInteriorPoints = gfan::ZMatrix(0,c);
1857 if (r==0)
return relativeInteriorPoints;
1862 gfan::ZMatrix newInequalities =
inequalities.submatrix(1,0,r,c);
1865 gfan::ZCone
facet = gfan::ZCone(newInequalities,newEquations);
1866 facet.canonicalize();
1867 gfan::ZVector interiorPoint =
facet.getRelativeInteriorPoint();
1868 if (exceptThese.count(interiorPoint)==0)
1869 relativeInteriorPoints.appendRow(interiorPoint);
1872 for (
int i=1;
i<r-1;
i++)
1878 facet = gfan::ZCone(newInequalities,newEquations);
1879 facet.canonicalize();
1880 interiorPoint =
facet.getRelativeInteriorPoint();
1881 if (exceptThese.count(interiorPoint)==0)
1882 relativeInteriorPoints.appendRow(interiorPoint);
1889 facet = gfan::ZCone(newInequalities,newEquations);
1890 facet.canonicalize();
1891 interiorPoint =
facet.getRelativeInteriorPoint();
1892 if (exceptThese.count(interiorPoint)==0)
1893 relativeInteriorPoints.appendRow(interiorPoint);
1895 return relativeInteriorPoints;
◆ liftUp()
gfan::ZCone liftUp |
( |
const gfan::ZCone & |
zc | ) |
|
Definition at line 1161 of file bbcone.cc.
1163 gfan::ZMatrix ineq=zc.getInequalities();
1164 gfan::ZMatrix eq=zc.getEquations();
◆ randomPoint()
gfan::ZVector randomPoint |
( |
const gfan::ZCone * |
zc | ) |
|
Definition at line 1055 of file bbcone.cc.
1057 gfan::ZVector rp = gfan::ZVector(zc->ambientDimension());
1059 gfan::ZMatrix
rays = zc->extremeRays();
1060 for (
int i=0;
i<
rays.getHeight();
i++)
1063 rp = rp + n *
rays[
i].toVector();
1066 gfan::ZMatrix lins = zc->generatorsOfLinealitySpace();
1067 for (
int i=0;
i<lins.getHeight();
i++)
1070 rp = rp + n * lins[
i].toVector();
◆ toString()
Definition at line 27 of file bbcone.cc.
30 s<<
"AMBIENT_DIM"<<std::endl;
31 s<<c->ambientDimension()<<std::endl;
33 gfan::ZMatrix
i=c->getInequalities();
35 if (c->areFacetsKnown())
36 s<<
"FACETS"<<std::endl;
38 s<<
"INEQUALITIES"<<std::endl;
45 gfan::ZMatrix e=c->getEquations();
47 if (c->areImpliedEquationsKnown())
48 s<<
"LINEAR_SPAN"<<std::endl;
50 s<<
"EQUATIONS"<<std::endl;
57 if (c->areExtremeRaysKnown())
59 gfan::ZMatrix r=c->extremeRays();
67 gfan::ZMatrix
l=c->generatorsOfLinealitySpace();
69 s<<
"LINEALITY_SPACE"<<std::endl;
◆ coneID
void * bbcone_Copy(blackbox *, void *d)
std::string toString(const gfan::ZCone *const c)
BOOLEAN dualCone(leftv res, leftv args)
BOOLEAN containsPositiveVector(leftv res, leftv args)
BOOLEAN impliedEquations(leftv res, leftv args)
BOOLEAN generatorsOfSpan(leftv res, leftv args)
BOOLEAN containsInSupport(leftv res, leftv args)
BOOLEAN isFullSpace(leftv res, leftv args)
BOOLEAN canonicalizeCone(leftv res, leftv args)
static BOOLEAN bbcone_Op2(int op, leftv res, leftv i1, leftv i2)
BOOLEAN quotientLatticeBasis(leftv res, leftv args)
BOOLEAN coneViaNormals(leftv res, leftv args)
BOOLEAN getMultiplicity(leftv res, leftv args)
BOOLEAN linealitySpace(leftv res, leftv args)
BOOLEAN bbcone_serialize(blackbox *b, void *d, si_link f)
BOOLEAN convexIntersectionOld(leftv res, leftv args)
BOOLEAN getLinearForms(leftv res, leftv args)
BOOLEAN coneViaRays(leftv res, leftv args)
BOOLEAN codimension(leftv res, leftv args)
BOOLEAN coneLink(leftv res, leftv args)
gfan::ZVector randomPoint(const gfan::ZCone *zc)
BOOLEAN negatedCone(leftv res, leftv args)
BOOLEAN rays(leftv res, leftv args)
BOOLEAN isSimplicial(leftv res, leftv args)
BOOLEAN inequalities(leftv res, leftv args)
BOOLEAN relativeInteriorPoint(leftv res, leftv args)
BOOLEAN semigroupGenerator(leftv res, leftv args)
BOOLEAN dimension(leftv res, leftv args)
char * bbcone_String(blackbox *, void *d)
BOOLEAN containsCone(leftv res, leftv args)
BOOLEAN bbcone_Assign(leftv l, leftv r)
BOOLEAN linealityDimension(leftv res, leftv args)
void * bbcone_Init(blackbox *)
BOOLEAN uniquePoint(leftv res, leftv args)
BOOLEAN equations(leftv res, leftv args)
BOOLEAN ambientDimension(leftv res, leftv args)
void bbcone_destroy(blackbox *, void *d)
const CanonicalForm int s
BOOLEAN faceContaining(leftv res, leftv args)
BOOLEAN setMultiplicity(leftv res, leftv args)
gfan::ZMatrix liftUp(const gfan::ZMatrix &zm)
BOOLEAN generatorsOfLinealitySpace(leftv res, leftv args)
BOOLEAN facets(leftv res, leftv args)
BOOLEAN containsRelatively(leftv res, leftv args)
BOOLEAN intersectCones(leftv res, leftv args)
BOOLEAN setLinearForms(leftv res, leftv args)
BOOLEAN hasFace(leftv res, leftv args)
BOOLEAN bbcone_deserialize(blackbox **b, void **d, si_link f)
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
BOOLEAN isOrigin(leftv res, leftv args)