16 #include <polymake/Graph.h>
22 gfan::ZCone* zp = (gfan::ZCone*) i1->
Data();
29 gfan::initializeCddlibIfRequired();
30 gfan::ZCone* zq = (gfan::ZCone*) i2->
Data();
36 pm::perl::BigObject pms;
37 polymake::call_function(
"minkowski_sum", *
pp, *pq) >> pms;
42 catch (
const std::exception& ex)
44 gfan::deinitializeCddlibIfRequired();
48 gfan::deinitializeCddlibIfRequired();
50 res->data = (
void*) ms;
59 gfan::initializeCddlibIfRequired();
60 int s = (int)(
long) i2->
Data();
61 gfan::ZMatrix zm = zp->extremeRays();
62 for (
int i=0;
i<zm.getHeight();
i++)
63 for (
int j=1;
j<zm.getWidth();
j++)
65 gfan::ZCone* zs =
new gfan::ZCone();
66 *zs = gfan::ZCone::givenByRays(zm,gfan::ZMatrix(0, zm.getWidth()));
67 gfan::deinitializeCddlibIfRequired();
69 res->data = (
void*) zs;
78 gfan::initializeCddlibIfRequired();
79 gfan::ZCone* zq = (gfan::ZCone*) i2->
Data();
80 int d1 = zp->ambientDimension();
81 int d2 = zq->ambientDimension();
84 gfan::deinitializeCddlibIfRequired();
85 WerrorS(
"mismatching ambient dimensions");
88 gfan::ZCone* zs =
new gfan::ZCone();
89 *zs = gfan::intersection(*zp, *zq);
91 gfan::deinitializeCddlibIfRequired();
93 res->data = (
void*) zs;
102 gfan::initializeCddlibIfRequired();
103 gfan::ZCone* zq = (gfan::ZCone*) i2->
Data();
104 int d1 = zp->ambientDimension();
105 int d2 = zq->ambientDimension();
108 gfan::deinitializeCddlibIfRequired();
109 WerrorS(
"mismatching ambient dimensions");
112 gfan::ZMatrix
rays = zp->extremeRays();
113 rays.append(zq->extremeRays());
114 gfan::ZMatrix lineality = zp->generatorsOfLinealitySpace();
115 lineality.append(zq->generatorsOfLinealitySpace());
116 gfan::ZCone* zs =
new gfan::ZCone();
117 *zs = gfan::ZCone::givenByRays(
rays,lineality);
119 gfan::deinitializeCddlibIfRequired();
121 res->data = (
void*) zs;
130 gfan::initializeCddlibIfRequired();
131 gfan::ZCone* zq = (gfan::ZCone*) i2->
Data();
134 bool b = !((*zp)!=(*zq));
135 gfan::deinitializeCddlibIfRequired();
137 res->data = (
char*) (
long)
b;
218 gfan::initializeCddlibIfRequired();
219 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
224 b =
p->give(
"Lattice");
227 catch (
const std::exception& ex)
229 gfan::deinitializeCddlibIfRequired();
233 gfan::deinitializeCddlibIfRequired();
235 res->data = (
char*) (
long)
b;
238 WerrorS(
"isLatticePolytope: unexpected parameters");
248 gfan::initializeCddlibIfRequired();
249 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
254 b =
p->give(
"BOUNDED");
257 catch (
const std::exception& ex)
259 gfan::deinitializeCddlibIfRequired();
263 gfan::deinitializeCddlibIfRequired();
265 res->data = (
char*) (
long)
b;
268 WerrorS(
"isBounded: unexpected parameters");
278 gfan::initializeCddlibIfRequired();
279 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
284 b =
p->give(
"REFLEXIVE");
287 catch (
const std::exception& ex)
289 gfan::deinitializeCddlibIfRequired();
293 gfan::deinitializeCddlibIfRequired();
295 res->data = (
char*) (
long)
b;
298 WerrorS(
"isReflexive: unexpected parameters");
308 gfan::initializeCddlibIfRequired();
309 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
314 b =
p->give(
"GORENSTEIN");
317 catch (
const std::exception& ex)
319 gfan::deinitializeCddlibIfRequired();
323 gfan::deinitializeCddlibIfRequired();
325 res->data = (
char*) (
long)
b;
328 WerrorS(
"isGorenstein: unexpected parameters");
338 gfan::initializeCddlibIfRequired();
339 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
345 bool b =
p->give(
"GORENSTEIN");
348 polymake::Integer pgi =
p->give(
"GORENSTEIN_INDEX");
355 gfan::deinitializeCddlibIfRequired();
356 WerrorS(
"gorensteinIndex: input polytope not gorenstein");
360 catch (
const std::exception& ex)
362 gfan::deinitializeCddlibIfRequired();
366 gfan::deinitializeCddlibIfRequired();
369 WerrorS(
"overflow while converting polymake::Integer to int");
373 res->data = (
char*) (
long) gi;
376 WerrorS(
"gorensteinIndex: unexpected parameters");
386 gfan::initializeCddlibIfRequired();
387 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
393 bool b =
p->give(
"GORENSTEIN");
396 polymake::Vector<polymake::Integer> pgv =
p->give(
"GORENSTEIN_VECTOR");
403 gfan::deinitializeCddlibIfRequired();
404 WerrorS(
"gorensteinVector: input polytope not gorenstein");
408 catch (
const std::exception& ex)
410 gfan::deinitializeCddlibIfRequired();
414 gfan::deinitializeCddlibIfRequired();
417 WerrorS(
"gorensteinVector: overflow in PmVectorInteger2Intvec");
421 res->data = (
char*) gv;
424 WerrorS(
"gorensteinVector: unexpected parameters");
434 gfan::initializeCddlibIfRequired();
435 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
440 b =
p->give(
"CANONICAL");
443 catch (
const std::exception& ex)
445 gfan::deinitializeCddlibIfRequired();
449 gfan::deinitializeCddlibIfRequired();
451 res->data = (
char*) (
long)
b;
454 WerrorS(
"isCanonical: unexpected parameters");
464 gfan::initializeCddlibIfRequired();
465 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
470 b =
p->give(
"TERMINAL");
473 catch (
const std::exception& ex)
475 gfan::deinitializeCddlibIfRequired();
479 gfan::deinitializeCddlibIfRequired();
481 res->data = (
char*) (
long)
b;
484 WerrorS(
"isTerminal: unexpected parameters");
494 gfan::initializeCddlibIfRequired();
495 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
500 b =
p->give(
"LATTICE_EMPTY");
503 catch (
const std::exception& ex)
505 gfan::deinitializeCddlibIfRequired();
509 gfan::deinitializeCddlibIfRequired();
511 res->data = (
char*) (
long)
b;
514 WerrorS(
"isLatticeEmpty: unexpected parameters");
524 gfan::initializeCddlibIfRequired();
525 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
531 polymake::Integer plv =
p->give(
"LATTICE_VOLUME");
535 catch (
const std::exception& ex)
537 gfan::deinitializeCddlibIfRequired();
541 gfan::deinitializeCddlibIfRequired();
544 WerrorS(
"overflow while converting polymake::Integer to int");
548 res->data = (
char*) (
long) lv;
551 WerrorS(
"latticeVolume: unexpected parameters");
561 gfan::initializeCddlibIfRequired();
562 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
568 polymake::Integer pld =
p->give(
"LATTICE_DEGREE");
572 catch (
const std::exception& ex)
574 gfan::deinitializeCddlibIfRequired();
578 gfan::deinitializeCddlibIfRequired();
581 WerrorS(
"overflow while converting polymake::Integer to int");
585 res->data = (
char*) (
long) ld;
588 WerrorS(
"latticeDegree: unexpected parameters");
598 gfan::initializeCddlibIfRequired();
599 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
605 polymake::Integer plc =
p->give(
"LATTICE_CODEGREE");
609 catch (
const std::exception& ex)
611 gfan::deinitializeCddlibIfRequired();
615 gfan::deinitializeCddlibIfRequired();
618 WerrorS(
"overflow while converting polymake::Integer to int");
622 res->data = (
char*) (
long)
lc;
625 WerrorS(
"latticeCodegree: unexpected parameters");
635 gfan::initializeCddlibIfRequired();
636 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
642 polymake::Vector<polymake::Integer> pec =
p->give(
"EHRHART_POLYNOMIAL_COEFF");
646 catch (
const std::exception& ex)
648 gfan::deinitializeCddlibIfRequired();
652 gfan::deinitializeCddlibIfRequired();
655 WerrorS(
"ehrhartPolynomialCoeff: overflow in PmVectorInteger2Intvec");
659 res->data = (
char*) ec;
662 WerrorS(
"ehrhartPolynomialCoeff: unexpected parameters");
672 gfan::initializeCddlibIfRequired();
673 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
679 polymake::Vector<polymake::Integer> phv =
p->give(
"F_VECTOR");
683 catch (
const std::exception& ex)
685 gfan::deinitializeCddlibIfRequired();
689 gfan::deinitializeCddlibIfRequired();
692 WerrorS(
"fVectorP: overflow in PmVectorInteger2Intvec");
696 res->data = (
char*) hv;
699 WerrorS(
"fVectorP: unexpected parameters");
709 gfan::initializeCddlibIfRequired();
710 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
716 polymake::Vector<polymake::Integer> phv =
p->give(
"H_VECTOR");
720 catch (
const std::exception& ex)
722 gfan::deinitializeCddlibIfRequired();
726 gfan::deinitializeCddlibIfRequired();
729 WerrorS(
"hVector: overflow in PmVectorInteger2Intvec");
733 res->data = (
char*) hv;
736 WerrorS(
"hVector: unexpected parameters");
746 gfan::initializeCddlibIfRequired();
747 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
753 polymake::Vector<polymake::Integer> phv =
p->give(
"H_STAR_VECTOR");
757 catch (
const std::exception& ex)
759 gfan::deinitializeCddlibIfRequired();
763 gfan::deinitializeCddlibIfRequired();
766 WerrorS(
"hStarVector: overflow in PmVectorInteger2Intvec");
770 res->data = (
char*) hv;
773 WerrorS(
"hStarVector: unexpected parameters");
783 gfan::initializeCddlibIfRequired();
784 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
789 b =
p->give(
"NORMAL");
792 catch (
const std::exception& ex)
794 gfan::deinitializeCddlibIfRequired();
798 gfan::deinitializeCddlibIfRequired();
800 res->data = (
char*) (
long)
b;
803 WerrorS(
"isNormal: unexpected parameters");
813 gfan::initializeCddlibIfRequired();
814 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
820 polymake::Vector<polymake::Integer> pfw =
p->give(
"FACET_WIDTHS");
824 catch (
const std::exception& ex)
826 gfan::deinitializeCddlibIfRequired();
830 gfan::deinitializeCddlibIfRequired();
833 WerrorS(
"facetWidths: overflow in PmVectorInteger2Intvec");
837 res->data = (
char*) fw;
840 WerrorS(
"facetWidths: unexpected parameters");
850 gfan::initializeCddlibIfRequired();
851 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
857 polymake::Integer pfw =
p->give(
"FACET_WIDTH");
861 catch (
const std::exception& ex)
863 gfan::deinitializeCddlibIfRequired();
867 gfan::deinitializeCddlibIfRequired();
870 WerrorS(
"overflow while converting polymake::Integer to int");
874 res->data = (
char*) (
long) fw;
877 WerrorS(
"facetWidth: unexpected parameters");
887 gfan::initializeCddlibIfRequired();
888 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
894 polymake::Matrix<polymake::Integer> pld =
p->give(
"FACET_VERTEX_LATTICE_DISTANCES");
898 catch (
const std::exception& ex)
900 gfan::deinitializeCddlibIfRequired();
904 gfan::deinitializeCddlibIfRequired();
907 WerrorS(
"overflow while converting polymake::Integer to int");
911 res->data = (
char*) ld;
914 WerrorS(
"facetVertexLatticeDistances: unexpected parameters");
924 gfan::initializeCddlibIfRequired();
925 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
930 b =
p->give(
"COMPRESSED");
933 catch (
const std::exception& ex)
935 gfan::deinitializeCddlibIfRequired();
939 gfan::deinitializeCddlibIfRequired();
941 res->data = (
char*) (
long)
b;
944 WerrorS(
"isCompressed: unexpected parameters");
954 gfan::initializeCddlibIfRequired();
955 gfan::ZCone* zc = (gfan::ZCone*)u->
Data();
960 b =
p->give(
"SMOOTH_CONE");
963 catch (
const std::exception& ex)
965 gfan::deinitializeCddlibIfRequired();
969 gfan::deinitializeCddlibIfRequired();
971 res->data = (
char*) (
long)
b;
976 gfan::initializeCddlibIfRequired();
977 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
982 b =
p->give(
"SMOOTH");
985 catch (
const std::exception& ex)
987 gfan::deinitializeCddlibIfRequired();
991 gfan::deinitializeCddlibIfRequired();
993 res->data = (
char*) (
long)
b;
998 gfan::initializeCddlibIfRequired();
999 gfan::ZFan* zf = (gfan::ZFan*)u->
Data();
1004 b =
p->give(
"SMOOTH_FAN");
1007 catch (
const std::exception& ex)
1009 gfan::deinitializeCddlibIfRequired();
1013 gfan::deinitializeCddlibIfRequired();
1015 res->data = (
char*) (
long)
b;
1018 WerrorS(
"isSmooth: unexpected parameters");
1028 gfan::initializeCddlibIfRequired();
1029 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1034 b =
p->give(
"VERY_AMPLE");
1037 catch (
const std::exception& ex)
1039 gfan::deinitializeCddlibIfRequired();
1043 gfan::deinitializeCddlibIfRequired();
1045 res->data = (
char*) (
long)
b;
1048 WerrorS(
"isVeryAmple: unexpected parameters");
1058 gfan::initializeCddlibIfRequired();
1059 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1065 #if (POLYMAKEVERSION >=4)
1066 polymake::Matrix<polymake::Integer> lp =
p->call_method(
"LATTICE_POINTS");
1067 #elif (POLYMAKEVERSION >=3)
1068 polymake::Matrix<polymake::Integer> lp =
p->give(
"LATTICE_POINTS");
1070 #error polymake version too old
1075 catch (
const std::exception& ex)
1077 gfan::deinitializeCddlibIfRequired();
1081 gfan::deinitializeCddlibIfRequired();
1084 WerrorS(
"overflow while converting polymake::Integer to int");
1088 res->data = (
char*) iv;
1091 WerrorS(
"LatticePoints: unexpected parameters");
1101 gfan::initializeCddlibIfRequired();
1102 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1108 polymake::Integer nlp =
p->give(
"N_LATTICE_POINTS");
1112 catch (
const std::exception& ex)
1114 gfan::deinitializeCddlibIfRequired();
1118 gfan::deinitializeCddlibIfRequired();
1121 WerrorS(
"overflow while converting polymake::Integer to int");
1125 res->data = (
char*) (
long) n;
1128 WerrorS(
"nLatticePoints: unexpected parameters");
1138 gfan::initializeCddlibIfRequired();
1139 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1145 polymake::Matrix<polymake::Integer> lp =
p->give(
"INTERIOR_LATTICE_POINTS");
1149 catch (
const std::exception& ex)
1151 gfan::deinitializeCddlibIfRequired();
1155 gfan::deinitializeCddlibIfRequired();
1158 WerrorS(
"overflow while converting polymake::Integer to int");
1162 res->data = (
char*) iv;
1165 WerrorS(
"interiorLatticePoints: unexpected parameters");
1175 gfan::initializeCddlibIfRequired();
1176 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1182 polymake::Integer nlp =
p->give(
"N_INTERIOR_LATTICE_POINTS");
1186 catch (
const std::exception& ex)
1188 gfan::deinitializeCddlibIfRequired();
1192 gfan::deinitializeCddlibIfRequired();
1195 WerrorS(
"overflow while converting polymake::Integer to int");
1199 res->data = (
char*) (
long) n;
1202 WerrorS(
"nInteriorLatticePoints: unexpected parameters");
1212 gfan::initializeCddlibIfRequired();
1213 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1219 polymake::Matrix<polymake::Integer> lp =
p->give(
"BOUNDARY_LATTICE_POINTS");
1223 catch (
const std::exception& ex)
1225 gfan::deinitializeCddlibIfRequired();
1229 gfan::deinitializeCddlibIfRequired();
1232 WerrorS(
"overflow while converting polymake::Integer to int");
1236 res->data = (
char*) iv;
1239 WerrorS(
"boundaryLatticePoints: unexpected parameters");
1249 gfan::initializeCddlibIfRequired();
1250 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1256 polymake::Integer nlp =
p->give(
"N_BOUNDARY_LATTICE_POINTS");
1260 catch (
const std::exception& ex)
1262 gfan::deinitializeCddlibIfRequired();
1266 gfan::deinitializeCddlibIfRequired();
1269 WerrorS(
"overflow while converting polymake::Integer to int");
1273 res->data = (
char*) (
long) n;
1276 WerrorS(
"nBoundaryLatticePoints: unexpected parameters");
1286 gfan::initializeCddlibIfRequired();
1287 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1293 #if (POLYMAKEVERSION >=4)
1294 polymake::Matrix<polymake::Integer> lp =
p->call_method(
"HILBERT_BASIS");
1295 #elif (POLYMAKEVERSION >=3)
1296 polymake::Matrix<polymake::Integer> lp =
p->give(
"HILBERT_BASIS");
1298 #error polymake version too old
1303 catch (
const std::exception& ex)
1305 gfan::deinitializeCddlibIfRequired();
1309 gfan::deinitializeCddlibIfRequired();
1312 WerrorS(
"overflow while converting polymake::Integer to int");
1316 res->data = (
char*) iv;
1319 WerrorS(
"hilbertBasis: unexpected parameters");
1329 gfan::initializeCddlibIfRequired();
1330 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1336 polymake::Integer nlp =
p->give(
"N_HILBERT_BASIS");
1340 catch (
const std::exception& ex)
1342 gfan::deinitializeCddlibIfRequired();
1346 gfan::deinitializeCddlibIfRequired();
1349 WerrorS(
"overflow while converting polymake::Integer to int");
1353 res->data = (
char*) (
long) n;
1356 WerrorS(
"nHilbertBasis: unexpected parameters");
1369 gfan::initializeCddlibIfRequired();
1370 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1371 gfan::ZCone* zq = (gfan::ZCone*)
v->Data();
1377 pm::perl::BigObject pms;
1378 polymake::call_function(
"minkowski_sum", *
pp, *pq) >> pms;
1383 catch (
const std::exception& ex)
1385 gfan::deinitializeCddlibIfRequired();
1389 gfan::deinitializeCddlibIfRequired();
1391 res->data = (
char*) ms;
1396 gfan::initializeCddlibIfRequired();
1397 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1398 gfan::ZCone* zc = (gfan::ZCone*)
v->Data();
1399 gfan::ZCone* zq =
new gfan::ZCone(
liftUp(*zc));
1405 pm::perl::BigObject pms;
1406 polymake::call_function(
"minkowski_sum", *
pp, *pq) >> pms;
1411 catch (
const std::exception& ex)
1414 gfan::deinitializeCddlibIfRequired();
1419 gfan::deinitializeCddlibIfRequired();
1421 res->data = (
char*) ms;
1430 gfan::initializeCddlibIfRequired();
1431 gfan::ZCone* zc = (gfan::ZCone*)u->
Data();
1432 gfan::ZCone* zp =
new gfan::ZCone(
liftUp(*zc));
1433 gfan::ZCone* zq = (gfan::ZCone*)
v->Data();
1439 pm::perl::BigObject pms;
1440 polymake::call_function(
"minkowski_sum", *
pp, *pq) >> pms;
1445 catch (
const std::exception& ex)
1448 gfan::deinitializeCddlibIfRequired();
1453 gfan::deinitializeCddlibIfRequired();
1455 res->data = (
char*) ms;
1460 gfan::initializeCddlibIfRequired();
1461 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1462 gfan::ZCone* zq = (gfan::ZCone*)
v->Data();
1468 pm::perl::BigObject pms;
1469 polymake::call_function(
"minkowski_sum", *
pp, *pq) >> pms;
1474 catch (
const std::exception& ex)
1477 gfan::deinitializeCddlibIfRequired();
1480 gfan::deinitializeCddlibIfRequired();
1482 res->data = (
char*) ms;
1486 WerrorS(
"minkowskiSum: unexpected parameters");
1491 polymake::Matrix<polymake::Integer>
verticesOf(
const pm::perl::BigObject*
p,
1492 const polymake::Set<polymake::Integer>*
s)
1494 polymake::Matrix<polymake::Integer> allrays =
p->give(
"VERTICES");
1495 polymake::Matrix<polymake::Integer> wantedrays;
1497 for(
auto i=polymake::entire(*
s); !
i.at_end();
i++)
1503 WerrorS(
"overflow while converting polymake::Integer to int in raysOf");
1517 gfan::initializeCddlibIfRequired();
1518 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1525 pm::perl::BigObject o(
"LinearProgram<Rational>");
1528 polymake::Set<polymake::Integer> mf =
p->give(
"LP.MAXIMAL_FACE");
1533 catch (
const std::exception& ex)
1536 gfan::deinitializeCddlibIfRequired();
1539 gfan::deinitializeCddlibIfRequired();
1542 WerrorS(
"overflow while converting polymake::Integer to int");
1546 res->data = (
char*) maxface;
1550 WerrorS(
"maximalFace: unexpected parameters");
1563 gfan::initializeCddlibIfRequired();
1564 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1571 pm::perl::BigObject o(
"LinearProgram<Rational>");
1574 polymake::Set<polymake::Integer> mf =
p->give(
"LP.MINIMAL_FACE");
1579 catch (
const std::exception& ex)
1582 gfan::deinitializeCddlibIfRequired();
1585 gfan::deinitializeCddlibIfRequired();
1588 WerrorS(
"overflow while converting polymake::Integer to int");
1592 res->data = (
char*) minface;
1596 WerrorS(
"minimalFace: unexpected parameters");
1609 gfan::initializeCddlibIfRequired();
1610 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1612 if (iv->
rows()==zp->ambientDimension())
1620 pm::perl::BigObject o(
"LinearProgram<Rational>");
1621 o.take(
"LINEAR_OBJECTIVE") << lo;
1623 polymake::Integer mv =
p->give(
"LP.MAXIMAL_VALUE");
1627 catch (
const std::exception& ex)
1630 gfan::deinitializeCddlibIfRequired();
1633 gfan::deinitializeCddlibIfRequired();
1636 WerrorS(
"overflow while converting polymake::Integer to int");
1640 res->data = (
char*) (
long)
m;
1644 WerrorS(
"maximalValue: vector is of wrong size");
1647 WerrorS(
"maximalValue: unexpected parameters");
1659 gfan::initializeCddlibIfRequired();
1660 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1662 if (iv->
rows()==zp->ambientDimension())
1670 pm::perl::BigObject o(
"LinearProgram<Rational>");
1671 o.take(
"LINEAR_OBJECTIVE") << lo;
1673 polymake::Integer mv =
p->give(
"LP.MINIMAL_VALUE");
1677 catch (
const std::exception& ex)
1680 gfan::deinitializeCddlibIfRequired();
1683 gfan::deinitializeCddlibIfRequired();
1686 WerrorS(
"overflow while converting polymake::Integer to int");
1690 res->data = (
char*) (
long)
m;
1694 WerrorS(
"minimalValue: vector is of wrong size");
1697 WerrorS(
"minimalValue: unexpected parameters");
1707 gfan::initializeCddlibIfRequired();
1708 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1712 polymake::call_function(
"jreality",
pp->call_method(
"VISUAL"));
1715 catch (
const std::exception& ex)
1718 gfan::deinitializeCddlibIfRequired();
1721 gfan::deinitializeCddlibIfRequired();
1728 gfan::initializeCddlibIfRequired();
1729 gfan::ZFan* zf = (gfan::ZFan*)u->
Data();
1733 polymake::call_function(
"jreality",pf->call_method(
"VISUAL"));
1735 catch (
const std::exception& ex)
1737 gfan::deinitializeCddlibIfRequired();
1741 gfan::deinitializeCddlibIfRequired();
1746 WerrorS(
"visual: unexpected parameters");
1755 gfan::initializeCddlibIfRequired();
1756 gfan::ZCone* zp = (gfan::ZCone*)u->
Data();
1757 gfan::ZFan* zf =
new gfan::ZFan(0);
1761 pm::perl::BigObject pf;
1762 polymake::call_function(
"normal_fan", *
p) >> pf;
1766 catch (
const std::exception& ex)
1768 gfan::deinitializeCddlibIfRequired();
1772 gfan::deinitializeCddlibIfRequired();
1774 res->data = (
char*) zf;
1777 WerrorS(
"normalFan: unexpected parameters");
1786 gfan::initializeCddlibIfRequired();
1787 pm::perl::BigObject pc(
"Cone<Rational>");
1790 pc.take(
"INPUT_RAYS") << pmhlines;
1797 pc.take(
"INPUT_LINEALITY") << pmlines;
1807 gfan::deinitializeCddlibIfRequired();
1809 res->data = (
char*) zc;
1812 WerrorS(
"coneViaRays: unexpected parameters");
1822 gfan::initializeCddlibIfRequired();
1823 pm::perl::BigObject
pp(
"Polytope<Rational>");
1830 int flag = (int) (
long)
v->Data();
1833 case 0:
pp.take(
"POINTS") << pmpoints;
1834 case 1:
pp.take(
"VERTICES") << pmpoints;
1835 default:
WerrorS(
"polytopeViaVertices: invalid flag");
1839 pp.take(
"POINTS") << pmpoints;
1842 gfan::deinitializeCddlibIfRequired();
1844 res->data = (
char*) zp;
1847 WerrorS(
"polytopeViaVertices: unexpected parameters");
1857 gfan::initializeCddlibIfRequired();
1858 gfan::ZCone* zp = (gfan::ZCone*) u->
Data();
1863 polymake::Matrix<polymake::Integer> vert0 =
p->give(
"VERTICES");
1866 output->
m[0].
data = (
void*) vert1;
1868 polymake::Graph<> gr=
p->give(
"GRAPH.ADJACENCY");
1869 polymake::IncidenceMatrix<polymake::NonSymmetric> adj = adjacency_matrix(gr);
1872 output->
m[1].
data = (
void*) listOfEdges;
1875 catch (
const std::exception& ex)
1877 gfan::deinitializeCddlibIfRequired();
1881 gfan::deinitializeCddlibIfRequired();
1883 res->data = (
void*) output;
1886 WerrorS(
"vertexEdgeGraph: unexpected parameters");
1896 gfan::initializeCddlibIfRequired();
1897 gfan::ZCone* zp = (gfan::ZCone*) u->
Data();
1902 polymake::Matrix<polymake::Integer> vert0 =
p->give(
"VERTICES");
1905 output->
m[0].
data = (
void*) vert1;
1907 polymake::Graph<> gr=
p->give(
"GRAPH.ADJACENCY");
1908 polymake::IncidenceMatrix<polymake::NonSymmetric> adj = adjacency_matrix(gr);
1911 output->
m[1].
data = (
void*) listOfEdges;
1914 catch (
const std::exception& ex)
1916 gfan::deinitializeCddlibIfRequired();
1920 gfan::deinitializeCddlibIfRequired();
1922 res->data = (
void*) output;
1925 WerrorS(
"vertexEdgeGraph: unexpected parameters");
1934 omp_set_num_threads(1);
1976 p->iiAddCproc(
"polymakeInterface.lib",
"visual",
FALSE,
visual);
gfan::ZMatrix liftUp(const gfan::ZMatrix &zm)
BOOLEAN rays(leftv res, leftv args)
BOOLEAN vertices(leftv res, leftv args)
BOOLEAN blackboxDefaultOp2(int, leftv, leftv, leftv)
default procedure blackboxDefaultOp2, to be called as "default:" branch
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
Class used for (list of) interpreter objects.
INLINE_THIS void Init(int l=0)
const CanonicalForm int s
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
static coordinates * points
int PmInteger2Int(const polymake::Integer &pi, bool &ok)
pm::perl::BigObject * ZFan2PmFan(gfan::ZFan *zf)
lists PmIncidenceMatrix2ListOfIntvecs(polymake::IncidenceMatrix< polymake::NonSymmetric > *icmat)
gfan::ZCone * PmCone2ZCone(pm::perl::BigObject *pc)
intvec * PmVectorInteger2Intvec(const polymake::Vector< polymake::Integer > *vi, bool &ok)
lists PmAdjacencyMatrix2ListOfEdges(polymake::IncidenceMatrix< polymake::NonSymmetric > *icmat)
bigintmat * PmMatrixInteger2Bigintmat(polymake::Matrix< polymake::Integer > *mi)
intvec * PmMatrixInteger2Intvec(polymake::Matrix< polymake::Integer > *mi, bool &ok)
polymake::Matrix< polymake::Integer > Intvec2PmMatrixInteger(const intvec *im)
gfan::ZCone * PmPolytope2ZPolytope(pm::perl::BigObject *pp)
polymake::Vector< polymake::Integer > Intvec2PmVectorInteger(const intvec *iv)
pm::perl::BigObject * ZCone2PmCone(gfan::ZCone *zc)
pm::perl::BigObject * ZPolytope2PmPolytope(gfan::ZCone *zc)
gfan::ZFan * PmFan2ZFan(pm::perl::BigObject *pf)
void init_polymake_help()
BOOLEAN PMnInteriorLatticePoints(leftv res, leftv args)
static BOOLEAN bbpolytope_Op2(int op, leftv res, leftv i1, leftv i2)
BOOLEAN PMisLatticePolytope(leftv res, leftv args)
BOOLEAN PMvertexAdjacencyGraph(leftv res, leftv args)
BOOLEAN PMminkowskiSum(leftv res, leftv args)
int SI_MOD_INIT() polymake(SModulFunctions *p)
BOOLEAN PMmaximalFace(leftv res, leftv args)
BOOLEAN PMfVector(leftv res, leftv args)
BOOLEAN PMisSmooth(leftv res, leftv args)
BOOLEAN normalFan(leftv res, leftv args)
BOOLEAN PMnBoundaryLatticePoints(leftv res, leftv args)
BOOLEAN PMfacetVertexLatticeDistances(leftv res, leftv args)
polymake::Matrix< polymake::Integer > verticesOf(const pm::perl::BigObject *p, const polymake::Set< polymake::Integer > *s)
BOOLEAN PMisLatticeEmpty(leftv res, leftv args)
BOOLEAN PMgorensteinIndex(leftv res, leftv args)
BOOLEAN visual(leftv res, leftv args)
BOOLEAN PMehrhartPolynomialCoeff(leftv res, leftv args)
BOOLEAN PMvertexEdgeGraph(leftv res, leftv args)
BOOLEAN PMboundaryLatticePoints(leftv res, leftv args)
BOOLEAN PMisReflexive(leftv res, leftv args)
BOOLEAN PMisVeryAmple(leftv res, leftv args)
BOOLEAN PMlatticeVolume(leftv res, leftv args)
BOOLEAN PMnHilbertBasis(leftv res, leftv args)
BOOLEAN PMmaximalValue(leftv res, leftv args)
BOOLEAN PMgorensteinVector(leftv res, leftv args)
polymake::Main * init_polymake
BOOLEAN PMlatticeDegree(leftv res, leftv args)
BOOLEAN PMhVector(leftv res, leftv args)
BOOLEAN PMminimalValue(leftv res, leftv args)
BOOLEAN PMisCompressed(leftv res, leftv args)
BOOLEAN PMlatticePoints(leftv res, leftv args)
BOOLEAN PMisBounded(leftv res, leftv args)
BOOLEAN PMnLatticePoints(leftv res, leftv args)
BOOLEAN PMinteriorLatticePoints(leftv res, leftv args)
BOOLEAN PMfacetWidth(leftv res, leftv args)
BOOLEAN PMisNormal(leftv res, leftv args)
BOOLEAN PMconeViaRays(leftv res, leftv args)
BOOLEAN PMhStarVector(leftv res, leftv args)
BOOLEAN PMminimalFace(leftv res, leftv args)
BOOLEAN PMlatticeCodegree(leftv res, leftv args)
BOOLEAN PMisCanonical(leftv res, leftv args)
BOOLEAN PMfacetWidths(leftv res, leftv args)
BOOLEAN PMisTerminal(leftv res, leftv args)
BOOLEAN PMhilbertBasis(leftv res, leftv args)
BOOLEAN PMpolytopeViaVertices(leftv res, leftv args)
BOOLEAN PMisGorenstein(leftv res, leftv args)