passagemath-gap-pkg-normalizinterface 10.6.32__cp310-cp310-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-gap-pkg-normalizinterface might be problematic. Click here for more details.
- gap/pkg/normalizinterface/CHANGES +113 -0
- gap/pkg/normalizinterface/LICENSE +351 -0
- gap/pkg/normalizinterface/PackageInfo.g +121 -0
- gap/pkg/normalizinterface/README.md +96 -0
- gap/pkg/normalizinterface/bin/aarch64-unknown-linux-musl-default64-kv10/NormalizInterface.so +0 -0
- gap/pkg/normalizinterface/etc/download.sh +85 -0
- gap/pkg/normalizinterface/etc/generate_cone_property_wrappers.g +380 -0
- gap/pkg/normalizinterface/examples/5x5.g +22 -0
- gap/pkg/normalizinterface/examples/demo.g +53 -0
- gap/pkg/normalizinterface/examples/docs.g +43 -0
- gap/pkg/normalizinterface/examples/dual_mode.g +26 -0
- gap/pkg/normalizinterface/examples/magic_square.g +36 -0
- gap/pkg/normalizinterface/init.g +7 -0
- gap/pkg/normalizinterface/lib/cone_property_wrappers.gd +682 -0
- gap/pkg/normalizinterface/lib/cone_property_wrappers.gi +132 -0
- gap/pkg/normalizinterface/lib/normaliz.gd +130 -0
- gap/pkg/normalizinterface/lib/normaliz.gi +153 -0
- gap/pkg/normalizinterface/makedoc.g +13 -0
- gap/pkg/normalizinterface/read.g +3 -0
- gap/pkg/normalizinterface/tst/InhomIneq.tst +20 -0
- gap/pkg/normalizinterface/tst/bugfix.tst +37 -0
- gap/pkg/normalizinterface/tst/conversion.tst +87 -0
- gap/pkg/normalizinterface/tst/cube-incidence.tst +62 -0
- gap/pkg/normalizinterface/tst/descent.tst +173 -0
- gap/pkg/normalizinterface/tst/dual.tst +533 -0
- gap/pkg/normalizinterface/tst/fractions.tst +29 -0
- gap/pkg/normalizinterface/tst/gorenstein.tst +22 -0
- gap/pkg/normalizinterface/tst/normalizinterface01.tst +46 -0
- gap/pkg/normalizinterface/tst/normalizinterface02.tst +107 -0
- gap/pkg/normalizinterface/tst/project.tst +136 -0
- gap/pkg/normalizinterface/tst/rational.tst +151 -0
- gap/pkg/normalizinterface/tst/rees.tst +544 -0
- gap/pkg/normalizinterface/tst/rp2poly.tst +351 -0
- gap/pkg/normalizinterface/tst/rproj2.tst +548 -0
- gap/pkg/normalizinterface/tst/testall.g +3 -0
- gap/pkg/normalizinterface/tst/verticesfloat.tst +11 -0
- passagemath_gap_pkg_normalizinterface-10.6.32.dist-info/METADATA +93 -0
- passagemath_gap_pkg_normalizinterface-10.6.32.dist-info/METADATA.bak +94 -0
- passagemath_gap_pkg_normalizinterface-10.6.32.dist-info/RECORD +54 -0
- passagemath_gap_pkg_normalizinterface-10.6.32.dist-info/WHEEL +5 -0
- passagemath_gap_pkg_normalizinterface-10.6.32.dist-info/top_level.txt +1 -0
- passagemath_gap_pkg_normalizinterface.libs/libeantic-da90a096.so.3.1.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libeanticxx-bd9d5c67.so.3.1.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libflint-8c82a98a.so.21.0.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libgcc_s-2d945d6c.so.1 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libgmp-28992bcb.so.10.5.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libgmpxx-fecb01a9.so.4.7.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libgomp-1ede7ee7.so.1.0.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libmpfr-e34bb864.so.6.2.1 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libnormaliz-40532fe8.so.3.11.0 +0 -0
- passagemath_gap_pkg_normalizinterface.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- sage/all__sagemath_gap_pkg_normalizinterface.py +1 -0
- sage/libs/all__sagemath_gap_pkg_normalizinterface.py +1 -0
- sage/libs/gap_pkg_normalizinterface.cpython-310-aarch64-linux-gnu.so +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# WARNING: This file was generated by etc/generate_cone_property_wrappers.g,
|
|
2
|
+
# DO NOT EDIT IT BY HAND!
|
|
3
|
+
|
|
4
|
+
InstallGlobalFunction( NmzAffineDim, cone -> NmzConeProperty( cone, "AffineDim" ) );
|
|
5
|
+
InstallGlobalFunction( NmzAllGeneratorsTriangulation, cone -> NmzConeProperty( cone, "AllGeneratorsTriangulation" ) );
|
|
6
|
+
InstallGlobalFunction( NmzAmbientAutomorphisms, cone -> NmzConeProperty( cone, "AmbientAutomorphisms" ) );
|
|
7
|
+
InstallGlobalFunction( NmzApproximate, cone -> NmzConeProperty( cone, "Approximate" ) );
|
|
8
|
+
InstallGlobalFunction( NmzAutomorphisms, cone -> NmzConeProperty( cone, "Automorphisms" ) );
|
|
9
|
+
InstallGlobalFunction( NmzAxesScaling, cone -> NmzConeProperty( cone, "AxesScaling" ) );
|
|
10
|
+
InstallGlobalFunction( NmzBasicStanleyDec, cone -> NmzConeProperty( cone, "BasicStanleyDec" ) );
|
|
11
|
+
InstallGlobalFunction( NmzBasicTriangulation, cone -> NmzConeProperty( cone, "BasicTriangulation" ) );
|
|
12
|
+
InstallGlobalFunction( NmzBigInt, cone -> NmzConeProperty( cone, "BigInt" ) );
|
|
13
|
+
InstallGlobalFunction( NmzBottomDecomposition, cone -> NmzConeProperty( cone, "BottomDecomposition" ) );
|
|
14
|
+
InstallGlobalFunction( NmzClassGroup, cone -> NmzConeProperty( cone, "ClassGroup" ) );
|
|
15
|
+
InstallGlobalFunction( NmzCombinatorialAutomorphisms, cone -> NmzConeProperty( cone, "CombinatorialAutomorphisms" ) );
|
|
16
|
+
InstallGlobalFunction( NmzConeDecomposition, cone -> NmzConeProperty( cone, "ConeDecomposition" ) );
|
|
17
|
+
InstallGlobalFunction( NmzCongruences, cone -> NmzConeProperty( cone, "Congruences" ) );
|
|
18
|
+
InstallGlobalFunction( NmzCoveringFace, cone -> NmzConeProperty( cone, "CoveringFace" ) );
|
|
19
|
+
InstallGlobalFunction( NmzDefaultMode, cone -> NmzConeProperty( cone, "DefaultMode" ) );
|
|
20
|
+
InstallGlobalFunction( NmzDeg1Elements, cone -> NmzConeProperty( cone, "Deg1Elements" ) );
|
|
21
|
+
InstallGlobalFunction( NmzDehomogenization, cone -> NmzConeProperty( cone, "Dehomogenization" ) );
|
|
22
|
+
InstallGlobalFunction( NmzDescent, cone -> NmzConeProperty( cone, "Descent" ) );
|
|
23
|
+
InstallGlobalFunction( NmzDistributedComp, cone -> NmzConeProperty( cone, "DistributedComp" ) );
|
|
24
|
+
InstallGlobalFunction( NmzDualFVector, cone -> NmzConeProperty( cone, "DualFVector" ) );
|
|
25
|
+
InstallGlobalFunction( NmzDualFaceLattice, cone -> NmzConeProperty( cone, "DualFaceLattice" ) );
|
|
26
|
+
InstallGlobalFunction( NmzDualIncidence, cone -> NmzConeProperty( cone, "DualIncidence" ) );
|
|
27
|
+
InstallGlobalFunction( NmzDualMode, cone -> NmzConeProperty( cone, "DualMode" ) );
|
|
28
|
+
InstallGlobalFunction( NmzDynamic, cone -> NmzConeProperty( cone, "Dynamic" ) );
|
|
29
|
+
InstallGlobalFunction( NmzEhrhartQuasiPolynomial, cone -> NmzConeProperty( cone, "EhrhartQuasiPolynomial" ) );
|
|
30
|
+
InstallGlobalFunction( NmzEhrhartSeries, cone -> NmzConeProperty( cone, "EhrhartSeries" ) );
|
|
31
|
+
InstallGlobalFunction( NmzEmbeddingDimension, cone -> NmzConeProperty( cone, "EmbeddingDim" ) );
|
|
32
|
+
InstallGlobalFunction( NmzEquations, cone -> NmzConeProperty( cone, "Equations" ) );
|
|
33
|
+
InstallGlobalFunction( NmzEuclideanAutomorphisms, cone -> NmzConeProperty( cone, "EuclideanAutomorphisms" ) );
|
|
34
|
+
InstallGlobalFunction( NmzEuclideanIntegral, cone -> NmzConeProperty( cone, "EuclideanIntegral" ) );
|
|
35
|
+
InstallGlobalFunction( NmzEuclideanVolume, cone -> NmzConeProperty( cone, "EuclideanVolume" ) );
|
|
36
|
+
InstallGlobalFunction( NmzExcludedFaces, cone -> NmzConeProperty( cone, "ExcludedFaces" ) );
|
|
37
|
+
InstallGlobalFunction( NmzExploitAutomsVectors, cone -> NmzConeProperty( cone, "ExploitAutomsVectors" ) );
|
|
38
|
+
InstallGlobalFunction( NmzExploitIsosMult, cone -> NmzConeProperty( cone, "ExploitIsosMult" ) );
|
|
39
|
+
InstallGlobalFunction( NmzExternalIndex, cone -> NmzConeProperty( cone, "ExternalIndex" ) );
|
|
40
|
+
InstallGlobalFunction( NmzExtremeRays, cone -> NmzConeProperty( cone, "ExtremeRays" ) );
|
|
41
|
+
InstallGlobalFunction( NmzExtremeRaysFloat, cone -> NmzConeProperty( cone, "ExtremeRaysFloat" ) );
|
|
42
|
+
InstallGlobalFunction( NmzFVector, cone -> NmzConeProperty( cone, "FVector" ) );
|
|
43
|
+
InstallGlobalFunction( NmzFaceLattice, cone -> NmzConeProperty( cone, "FaceLattice" ) );
|
|
44
|
+
InstallGlobalFunction( NmzFixedPrecision, cone -> NmzConeProperty( cone, "FixedPrecision" ) );
|
|
45
|
+
InstallGlobalFunction( NmzFullConeDynamic, cone -> NmzConeProperty( cone, "FullConeDynamic" ) );
|
|
46
|
+
InstallGlobalFunction( NmzGeneratorOfInterior, cone -> NmzConeProperty( cone, "GeneratorOfInterior" ) );
|
|
47
|
+
InstallGlobalFunction( NmzGenerators, cone -> NmzConeProperty( cone, "Generators" ) );
|
|
48
|
+
InstallGlobalFunction( NmzGrading, cone -> NmzConeProperty( cone, "Grading" ) );
|
|
49
|
+
InstallGlobalFunction( NmzGradingDenom, cone -> NmzConeProperty( cone, "GradingDenom" ) );
|
|
50
|
+
InstallGlobalFunction( NmzGradingIsPositive, cone -> NmzConeProperty( cone, "GradingIsPositive" ) );
|
|
51
|
+
InstallGlobalFunction( NmzHSOP, cone -> NmzConeProperty( cone, "HSOP" ) );
|
|
52
|
+
InstallGlobalFunction( NmzHilbertBasis, cone -> NmzConeProperty( cone, "HilbertBasis" ) );
|
|
53
|
+
InstallGlobalFunction( NmzHilbertQuasiPolynomial, cone -> NmzConeProperty( cone, "HilbertQuasiPolynomial" ) );
|
|
54
|
+
InstallGlobalFunction( NmzHilbertSeries, cone -> NmzConeProperty( cone, "HilbertSeries" ) );
|
|
55
|
+
InstallGlobalFunction( NmzIncidence, cone -> NmzConeProperty( cone, "Incidence" ) );
|
|
56
|
+
InstallGlobalFunction( NmzInclusionExclusionData, cone -> NmzConeProperty( cone, "InclusionExclusionData" ) );
|
|
57
|
+
InstallGlobalFunction( NmzInputAutomorphisms, cone -> NmzConeProperty( cone, "InputAutomorphisms" ) );
|
|
58
|
+
InstallGlobalFunction( NmzIntegerHull, cone -> NmzConeProperty( cone, "IntegerHull" ) );
|
|
59
|
+
InstallGlobalFunction( NmzIntegral, cone -> NmzConeProperty( cone, "Integral" ) );
|
|
60
|
+
InstallGlobalFunction( NmzInternalIndex, cone -> NmzConeProperty( cone, "InternalIndex" ) );
|
|
61
|
+
InstallGlobalFunction( NmzIsDeg1ExtremeRays, cone -> NmzConeProperty( cone, "IsDeg1ExtremeRays" ) );
|
|
62
|
+
InstallGlobalFunction( NmzIsDeg1HilbertBasis, cone -> NmzConeProperty( cone, "IsDeg1HilbertBasis" ) );
|
|
63
|
+
InstallGlobalFunction( NmzIsEmptySemiOpen, cone -> NmzConeProperty( cone, "IsEmptySemiOpen" ) );
|
|
64
|
+
InstallGlobalFunction( NmzIsGorenstein, cone -> NmzConeProperty( cone, "IsGorenstein" ) );
|
|
65
|
+
InstallGlobalFunction( NmzIsInhomogeneous, cone -> NmzConeProperty( cone, "IsInhomogeneous" ) );
|
|
66
|
+
InstallGlobalFunction( NmzIsIntegrallyClosed, cone -> NmzConeProperty( cone, "IsIntegrallyClosed" ) );
|
|
67
|
+
InstallGlobalFunction( NmzIsPointed, cone -> NmzConeProperty( cone, "IsPointed" ) );
|
|
68
|
+
InstallGlobalFunction( NmzIsReesPrimary, cone -> NmzConeProperty( cone, "IsReesPrimary" ) );
|
|
69
|
+
InstallGlobalFunction( NmzIsTriangulationNested, cone -> NmzConeProperty( cone, "IsTriangulationNested" ) );
|
|
70
|
+
InstallGlobalFunction( NmzIsTriangulationPartial, cone -> NmzConeProperty( cone, "IsTriangulationPartial" ) );
|
|
71
|
+
InstallGlobalFunction( NmzKeepOrder, cone -> NmzConeProperty( cone, "KeepOrder" ) );
|
|
72
|
+
InstallGlobalFunction( NmzLatticePointTriangulation, cone -> NmzConeProperty( cone, "LatticePointTriangulation" ) );
|
|
73
|
+
InstallGlobalFunction( NmzLatticePoints, cone -> NmzConeProperty( cone, "LatticePoints" ) );
|
|
74
|
+
InstallGlobalFunction( NmzMaximalSubspace, cone -> NmzConeProperty( cone, "MaximalSubspace" ) );
|
|
75
|
+
InstallGlobalFunction( NmzModuleGenerators, cone -> NmzConeProperty( cone, "ModuleGenerators" ) );
|
|
76
|
+
InstallGlobalFunction( NmzModuleGeneratorsOverOriginalMonoid, cone -> NmzConeProperty( cone, "ModuleGeneratorsOverOriginalMonoid" ) );
|
|
77
|
+
InstallGlobalFunction( NmzModuleRank, cone -> NmzConeProperty( cone, "ModuleRank" ) );
|
|
78
|
+
InstallGlobalFunction( NmzMultiplicity, cone -> NmzConeProperty( cone, "Multiplicity" ) );
|
|
79
|
+
InstallGlobalFunction( NmzNoBottomDec, cone -> NmzConeProperty( cone, "NoBottomDec" ) );
|
|
80
|
+
InstallGlobalFunction( NmzNoDescent, cone -> NmzConeProperty( cone, "NoDescent" ) );
|
|
81
|
+
InstallGlobalFunction( NmzNoGradingDenom, cone -> NmzConeProperty( cone, "NoGradingDenom" ) );
|
|
82
|
+
InstallGlobalFunction( NmzNoLLL, cone -> NmzConeProperty( cone, "NoLLL" ) );
|
|
83
|
+
InstallGlobalFunction( NmzNoNestedTri, cone -> NmzConeProperty( cone, "NoNestedTri" ) );
|
|
84
|
+
InstallGlobalFunction( NmzNoPeriodBound, cone -> NmzConeProperty( cone, "NoPeriodBound" ) );
|
|
85
|
+
InstallGlobalFunction( NmzNoProjection, cone -> NmzConeProperty( cone, "NoProjection" ) );
|
|
86
|
+
InstallGlobalFunction( NmzNoRelax, cone -> NmzConeProperty( cone, "NoRelax" ) );
|
|
87
|
+
InstallGlobalFunction( NmzNoSignedDec, cone -> NmzConeProperty( cone, "NoSignedDec" ) );
|
|
88
|
+
InstallGlobalFunction( NmzNoSubdivision, cone -> NmzConeProperty( cone, "NoSubdivision" ) );
|
|
89
|
+
InstallGlobalFunction( NmzNoSymmetrization, cone -> NmzConeProperty( cone, "NoSymmetrization" ) );
|
|
90
|
+
InstallGlobalFunction( NmzNumberLatticePoints, cone -> NmzConeProperty( cone, "NumberLatticePoints" ) );
|
|
91
|
+
InstallGlobalFunction( NmzOriginalMonoidGenerators, cone -> NmzConeProperty( cone, "OriginalMonoidGenerators" ) );
|
|
92
|
+
InstallGlobalFunction( NmzPlacingTriangulation, cone -> NmzConeProperty( cone, "PlacingTriangulation" ) );
|
|
93
|
+
InstallGlobalFunction( NmzPrimalMode, cone -> NmzConeProperty( cone, "PrimalMode" ) );
|
|
94
|
+
InstallGlobalFunction( NmzProjectCone, cone -> NmzConeProperty( cone, "ProjectCone" ) );
|
|
95
|
+
InstallGlobalFunction( NmzProjection, cone -> NmzConeProperty( cone, "Projection" ) );
|
|
96
|
+
InstallGlobalFunction( NmzProjectionFloat, cone -> NmzConeProperty( cone, "ProjectionFloat" ) );
|
|
97
|
+
InstallGlobalFunction( NmzPullingTriangulation, cone -> NmzConeProperty( cone, "PullingTriangulation" ) );
|
|
98
|
+
InstallGlobalFunction( NmzPullingTriangulationInternal, cone -> NmzConeProperty( cone, "PullingTriangulationInternal" ) );
|
|
99
|
+
InstallGlobalFunction( NmzRank, cone -> NmzConeProperty( cone, "Rank" ) );
|
|
100
|
+
InstallGlobalFunction( NmzRationalAutomorphisms, cone -> NmzConeProperty( cone, "RationalAutomorphisms" ) );
|
|
101
|
+
InstallGlobalFunction( NmzRecessionRank, cone -> NmzConeProperty( cone, "RecessionRank" ) );
|
|
102
|
+
InstallGlobalFunction( NmzReesPrimaryMultiplicity, cone -> NmzConeProperty( cone, "ReesPrimaryMultiplicity" ) );
|
|
103
|
+
InstallGlobalFunction( NmzRenfVolume, cone -> NmzConeProperty( cone, "RenfVolume" ) );
|
|
104
|
+
InstallGlobalFunction( NmzSignedDec, cone -> NmzConeProperty( cone, "SignedDec" ) );
|
|
105
|
+
InstallGlobalFunction( NmzStanleyDec, cone -> NmzConeProperty( cone, "StanleyDec" ) );
|
|
106
|
+
InstallGlobalFunction( NmzStatic, cone -> NmzConeProperty( cone, "Static" ) );
|
|
107
|
+
InstallGlobalFunction( NmzStrictIsoTypeCheck, cone -> NmzConeProperty( cone, "StrictIsoTypeCheck" ) );
|
|
108
|
+
InstallGlobalFunction( NmzSublattice, cone -> NmzConeProperty( cone, "Sublattice" ) );
|
|
109
|
+
InstallGlobalFunction( NmzSuppHypsFloat, cone -> NmzConeProperty( cone, "SuppHypsFloat" ) );
|
|
110
|
+
InstallGlobalFunction( NmzSupportHyperplanes, cone -> NmzConeProperty( cone, "SupportHyperplanes" ) );
|
|
111
|
+
InstallGlobalFunction( NmzSymmetrize, cone -> NmzConeProperty( cone, "Symmetrize" ) );
|
|
112
|
+
InstallGlobalFunction( NmzTestArithOverflowDescent, cone -> NmzConeProperty( cone, "TestArithOverflowDescent" ) );
|
|
113
|
+
InstallGlobalFunction( NmzTestArithOverflowDualMode, cone -> NmzConeProperty( cone, "TestArithOverflowDualMode" ) );
|
|
114
|
+
InstallGlobalFunction( NmzTestArithOverflowFullCone, cone -> NmzConeProperty( cone, "TestArithOverflowFullCone" ) );
|
|
115
|
+
InstallGlobalFunction( NmzTestArithOverflowProjAndLift, cone -> NmzConeProperty( cone, "TestArithOverflowProjAndLift" ) );
|
|
116
|
+
InstallGlobalFunction( NmzTestLargePyramids, cone -> NmzConeProperty( cone, "TestLargePyramids" ) );
|
|
117
|
+
InstallGlobalFunction( NmzTestLibNormaliz, cone -> NmzConeProperty( cone, "TestLibNormaliz" ) );
|
|
118
|
+
InstallGlobalFunction( NmzTestLinearAlgebraGMP, cone -> NmzConeProperty( cone, "TestLinearAlgebraGMP" ) );
|
|
119
|
+
InstallGlobalFunction( NmzTestSimplexParallel, cone -> NmzConeProperty( cone, "TestSimplexParallel" ) );
|
|
120
|
+
InstallGlobalFunction( NmzTestSmallPyramids, cone -> NmzConeProperty( cone, "TestSmallPyramids" ) );
|
|
121
|
+
InstallGlobalFunction( NmzTriangulation, cone -> NmzConeProperty( cone, "Triangulation" ) );
|
|
122
|
+
InstallGlobalFunction( NmzTriangulationDetSum, cone -> NmzConeProperty( cone, "TriangulationDetSum" ) );
|
|
123
|
+
InstallGlobalFunction( NmzTriangulationSize, cone -> NmzConeProperty( cone, "TriangulationSize" ) );
|
|
124
|
+
InstallGlobalFunction( NmzUnimodularTriangulation, cone -> NmzConeProperty( cone, "UnimodularTriangulation" ) );
|
|
125
|
+
InstallGlobalFunction( NmzUnitGroupIndex, cone -> NmzConeProperty( cone, "UnitGroupIndex" ) );
|
|
126
|
+
InstallGlobalFunction( NmzVerticesFloat, cone -> NmzConeProperty( cone, "VerticesFloat" ) );
|
|
127
|
+
InstallGlobalFunction( NmzVerticesOfPolyhedron, cone -> NmzConeProperty( cone, "VerticesOfPolyhedron" ) );
|
|
128
|
+
InstallGlobalFunction( NmzVirtualMultiplicity, cone -> NmzConeProperty( cone, "VirtualMultiplicity" ) );
|
|
129
|
+
InstallGlobalFunction( NmzVolume, cone -> NmzConeProperty( cone, "Volume" ) );
|
|
130
|
+
InstallGlobalFunction( NmzWeightedEhrhartQuasiPolynomial, cone -> NmzConeProperty( cone, "WeightedEhrhartQuasiPolynomial" ) );
|
|
131
|
+
InstallGlobalFunction( NmzWeightedEhrhartSeries, cone -> NmzConeProperty( cone, "WeightedEhrhartSeries" ) );
|
|
132
|
+
InstallGlobalFunction( NmzWitnessNotIntegrallyClosed, cone -> NmzConeProperty( cone, "WitnessNotIntegrallyClosed" ) );
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
#! @Chapter Functions
|
|
2
|
+
#! @Section YOU FORGOT TO SET A SECTION
|
|
3
|
+
|
|
4
|
+
NormalizObjectFamily := NewFamily( "NormalizObjectFamily" );
|
|
5
|
+
|
|
6
|
+
DeclareCategory( "IsNormalizCone", IsObject );
|
|
7
|
+
|
|
8
|
+
BindGlobal("TheTypeNormalizCone", NewType( NormalizObjectFamily, IsNormalizCone ));
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
#
|
|
12
|
+
#! @Section Use a NmzCone
|
|
13
|
+
#
|
|
14
|
+
|
|
15
|
+
#! @Section Use a NmzCone
|
|
16
|
+
#! @Arguments cone[, propnames]
|
|
17
|
+
#! @Returns a boolean indicating success
|
|
18
|
+
#! @Description
|
|
19
|
+
#! Start computing properties of the given cone.
|
|
20
|
+
#! The first parameter indicates a cone object, the second parameter
|
|
21
|
+
#! is either a single string, or a list of strings, which indicate
|
|
22
|
+
#! what should be computed.
|
|
23
|
+
#! <P/>
|
|
24
|
+
#!
|
|
25
|
+
#! The single parameter version is equivalent to
|
|
26
|
+
#! <C>NmzCone(cone, ["DefaultMode"])</C>.
|
|
27
|
+
#! See <Ref Func="NmzConeProperty"/> for a list of recognized properties.
|
|
28
|
+
#! @InsertChunk NmzCompute_example
|
|
29
|
+
DeclareGlobalFunction( "NmzCompute" );
|
|
30
|
+
|
|
31
|
+
#! @Arguments cone, property
|
|
32
|
+
#! @Returns the result of the computation, type depends on the property
|
|
33
|
+
#! @Description
|
|
34
|
+
#! Triggers the computation of the property of the cone and returns the result.
|
|
35
|
+
#! If the property was already known, it is not recomputed.
|
|
36
|
+
#! Currently the following strings are recognized as properties:
|
|
37
|
+
#! <List>
|
|
38
|
+
#! <Item><C>Generators</C> see <Ref Func="NmzGenerators"/>,</Item>
|
|
39
|
+
#! <Item><C>ExtremeRays</C> see <Ref Func="NmzExtremeRays"/>,</Item>
|
|
40
|
+
#! <Item><C>VerticesOfPolyhedron</C> see <Ref Func="NmzVerticesOfPolyhedron"/>,</Item>
|
|
41
|
+
#! <Item><C>SupportHyperplanes</C> see <Ref Func="NmzSupportHyperplanes"/>,</Item>
|
|
42
|
+
#! <Item><C>TriangulationSize</C> see <Ref Func="NmzTriangulationSize"/>,</Item>
|
|
43
|
+
#! <Item><C>TriangulationDetSum</C> see <Ref Func="NmzTriangulationDetSum"/>,</Item>
|
|
44
|
+
#! <Item><C>Triangulation</C> see <Ref Func="NmzTriangulation"/>,</Item>
|
|
45
|
+
#! <Item><C>Multiplicity</C> see <Ref Func="NmzMultiplicity"/>,</Item>
|
|
46
|
+
#! <Item><C>RecessionRank</C> see <Ref Func="NmzRecessionRank"/>,</Item>
|
|
47
|
+
#! <Item><C>AffineDim</C> see <Ref Func="NmzAffineDim"/>,</Item>
|
|
48
|
+
#! <Item><C>ModuleRank</C> see <Ref Func="NmzModuleRank"/>,</Item>
|
|
49
|
+
#! <Item><C>HilbertBasis</C> see <Ref Func="NmzHilbertBasis"/>,</Item>
|
|
50
|
+
#! <Item><C>ModuleGenerators</C> see <Ref Func="NmzModuleGenerators"/>,</Item>
|
|
51
|
+
#! <Item><C>Deg1Elements</C> see <Ref Func="NmzDeg1Elements"/>,</Item>
|
|
52
|
+
#! <Item><C>HilbertSeries</C> see <Ref Func="NmzHilbertSeries"/>,</Item>
|
|
53
|
+
#! <Item><C>HilbertQuasiPolynomial</C> see <Ref Func="NmzHilbertQuasiPolynomial"/>,</Item>
|
|
54
|
+
#! <Item><C>Grading</C> see <Ref Func="NmzGrading"/>,</Item>
|
|
55
|
+
#! <Item><C>IsPointed</C> see <Ref Func="NmzIsPointed"/>,</Item>
|
|
56
|
+
#! <Item><C>IsDeg1ExtremeRays</C> see <Ref Func="NmzIsDeg1ExtremeRays"/>,</Item>
|
|
57
|
+
#! <Item><C>IsDeg1HilbertBasis</C> see <Ref Func="NmzIsDeg1HilbertBasis"/>,</Item>
|
|
58
|
+
#! <Item><C>IsIntegrallyClosed</C> see <Ref Func="NmzIsIntegrallyClosed"/>,</Item>
|
|
59
|
+
#! <Item><C>OriginalMonoidGenerators</C> see <Ref Func="NmzOriginalMonoidGenerators"/>,</Item>
|
|
60
|
+
#! <Item><C>IsReesPrimary</C> see <Ref Func="NmzIsReesPrimary"/>,</Item>
|
|
61
|
+
#! <Item><C>ReesPrimaryMultiplicity</C> see <Ref Func="NmzReesPrimaryMultiplicity"/>,</Item>
|
|
62
|
+
#! <Item><C>ExcludedFaces</C> see <Ref Func="NmzExcludedFaces"/>,</Item>
|
|
63
|
+
#! <Item><C>Dehomogenization</C> see <Ref Func="NmzDehomogenization"/>,</Item>
|
|
64
|
+
#! <Item><C>InclusionExclusionData</C> see <Ref Func="NmzInclusionExclusionData"/>,</Item>
|
|
65
|
+
#! <Item><C>ClassGroup</C> see <Ref Func="NmzClassGroup"/>,</Item>
|
|
66
|
+
#! <Item><C>ModuleGeneratorsOverOriginalMonoid</C> see <Ref Func="NmzModuleGeneratorsOverOriginalMonoid"/>,</Item>
|
|
67
|
+
#! <Item><C>Sublattice</C> computes the efficient sublattice and returns a bool signaling
|
|
68
|
+
#! whether the computation was successful. Actual data connected to
|
|
69
|
+
#! it can be accessed by <Ref Func="NmzRank"/>, <Ref Func="NmzEquations"/>,
|
|
70
|
+
#! <Ref Func="NmzCongruences"/>, and <Ref Func="NmzBasisChange"/>.</Item>
|
|
71
|
+
#! </List>
|
|
72
|
+
#!
|
|
73
|
+
#! Additionally also the following compute options are accepted as property. They modify what and how should be computed, and return True after a successful computation.
|
|
74
|
+
#! <List>
|
|
75
|
+
#! <Item><C>Approximate</C> approximate the rational polytope by an integral polytope, currently only useful in combination with <C>Deg1Elements</C>.</Item>
|
|
76
|
+
#! <Item><C>BottomDecomposition</C> use the best possible triangulation (with respect to the sum of determinants) using the given generators.</Item>
|
|
77
|
+
#! <Item><C>DefaultMode</C> try to compute what is possible and do not throw an exception when something cannot be computed.</Item>
|
|
78
|
+
#! <Item><C>DualMode</C>activates the dual algorithm for the computation of the Hilbert basis and degree
|
|
79
|
+
#! 1 elements. Includes <C>HilbertBasis</C>, unless <C>Deg1Elements</C> is set. Often a good choice if you start from constraints.</Item>
|
|
80
|
+
#! <Item><C>KeepOrder</C> forbids to reorder the generators. Blocks <C>BottomDecomposition</C>.</Item>
|
|
81
|
+
#! </List>
|
|
82
|
+
#!
|
|
83
|
+
#! All the properties above can be given to <Ref Func="NmzCompute"/>. There you can
|
|
84
|
+
#! combine different properties, e.g. give some properties that you would like to know and add some compute options.
|
|
85
|
+
#! <P/>
|
|
86
|
+
#! See the Normaliz manual for a detailed description.
|
|
87
|
+
#!
|
|
88
|
+
DeclareGlobalFunction( "NmzConeProperty" );
|
|
89
|
+
|
|
90
|
+
#! @Arguments cone
|
|
91
|
+
#! @Description
|
|
92
|
+
#! Print an overview of all known properties of the given cone,
|
|
93
|
+
#! as well as their values.
|
|
94
|
+
DeclareGlobalFunction( "NmzPrintConeProperties" );
|
|
95
|
+
|
|
96
|
+
#
|
|
97
|
+
#! @Section Cone properties
|
|
98
|
+
#
|
|
99
|
+
|
|
100
|
+
#! @Arguments cone
|
|
101
|
+
#! @Returns a record describing the basis change
|
|
102
|
+
#! @Description
|
|
103
|
+
#! The result record <C>r</C> has three components:
|
|
104
|
+
#! <C>r.Embedding</C>, <C>r.Projection</C>, and <C>r.Annihilator</C>,
|
|
105
|
+
#! where the embedding <C>A</C> and the projection <C>B</C>
|
|
106
|
+
#! are matrices, and the annihilator <C>c</C> is an integer.
|
|
107
|
+
#! They represent the mapping into the effective lattice
|
|
108
|
+
#! <M>\mathbb{Z}^n \to \mathbb{Z}^r, u \mapsto (uB)/c</M>
|
|
109
|
+
#! and the inverse operation
|
|
110
|
+
#! <M>\mathbb{Z}^r \to \mathbb{Z}^n, v \mapsto vA</M>.
|
|
111
|
+
#! <P/>
|
|
112
|
+
#! This is part of the cone property <Q>Sublattice</Q>.
|
|
113
|
+
DeclareGlobalFunction( "NmzBasisChange" );
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
#! @Section Create a NmzCone
|
|
117
|
+
#! @Arguments list
|
|
118
|
+
#! @Returns NmzCone
|
|
119
|
+
#! @Description
|
|
120
|
+
#! Creates a NmzCone. The <A>list</A> argument should contain an even number of
|
|
121
|
+
#! elements, alternating between a string and a integer matrix. The string has to
|
|
122
|
+
#! correspond to a Normaliz input type string and the following matrix will be
|
|
123
|
+
#! interpreted as input of that type.
|
|
124
|
+
#!
|
|
125
|
+
#! See the Normaliz manual for the Normaliz version loaded by your version
|
|
126
|
+
#! of NormalizInterface for a detailed description of which input type strings
|
|
127
|
+
#! are supported and what arguments they take.
|
|
128
|
+
#!
|
|
129
|
+
#! @InsertChunk NmzCone_example
|
|
130
|
+
DeclareGlobalFunction( "NmzCone" );
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
##
|
|
2
|
+
InstallMethod( ViewString,
|
|
3
|
+
"for a Normaliz cone",
|
|
4
|
+
[ IsNormalizCone ],
|
|
5
|
+
function( r )
|
|
6
|
+
# TODO: May print more information when present
|
|
7
|
+
return "<a Normaliz cone>";
|
|
8
|
+
end );
|
|
9
|
+
|
|
10
|
+
BindGlobal("_NmzRecordOfConeProperties", _NmzConePropertiesNamesRecord());
|
|
11
|
+
|
|
12
|
+
InstallGlobalFunction("NmzConeProperty",
|
|
13
|
+
function(cone, prop)
|
|
14
|
+
local result, t, poly, tmp, denom;
|
|
15
|
+
result := _NmzConeProperty(cone, prop);
|
|
16
|
+
if prop = _NmzRecordOfConeProperties.Grading or prop = "Grading" then
|
|
17
|
+
denom := NmzConeProperty(cone, _NmzRecordOfConeProperties.GradingDenom);;
|
|
18
|
+
return result / denom;
|
|
19
|
+
fi;
|
|
20
|
+
if prop = _NmzRecordOfConeProperties.HilbertSeries or prop = "HilbertSeries" then
|
|
21
|
+
t := Indeterminate(Integers, "t");
|
|
22
|
+
poly := UnivariatePolynomial(Integers, result[1], t);
|
|
23
|
+
poly := poly * t^result[3];
|
|
24
|
+
tmp := Collected(result[2]);
|
|
25
|
+
return [poly, tmp];
|
|
26
|
+
fi;
|
|
27
|
+
if prop = _NmzRecordOfConeProperties.HilbertQuasiPolynomial or prop = "HilbertQuasiPolynomial" then
|
|
28
|
+
t := Indeterminate(Rationals, "t");
|
|
29
|
+
denom := Remove(result);
|
|
30
|
+
poly := List(result, coeffs -> UnivariatePolynomial(Rationals, coeffs, t));
|
|
31
|
+
return poly / denom;
|
|
32
|
+
fi;
|
|
33
|
+
return result;
|
|
34
|
+
end);
|
|
35
|
+
|
|
36
|
+
InstallGlobalFunction("NmzPrintConeProperties",
|
|
37
|
+
function(cone)
|
|
38
|
+
local prop, val;
|
|
39
|
+
if not IsNormalizCone(cone) then
|
|
40
|
+
Error("First argument must be a Normaliz cone object");
|
|
41
|
+
return;
|
|
42
|
+
fi;
|
|
43
|
+
for prop in NmzKnownConeProperties(cone) do
|
|
44
|
+
val := NmzConeProperty(cone, prop);
|
|
45
|
+
Print(prop," = ");
|
|
46
|
+
if IsMatrix(val) then
|
|
47
|
+
Print("\n");
|
|
48
|
+
fi;
|
|
49
|
+
Display(val);
|
|
50
|
+
od;
|
|
51
|
+
end);
|
|
52
|
+
|
|
53
|
+
BindGlobal("_NmzPrintSomeConeProperties",
|
|
54
|
+
function(cone, excluded)
|
|
55
|
+
local prop, val;
|
|
56
|
+
if not IsNormalizCone(cone) then
|
|
57
|
+
Error("First argument must be a Normaliz cone object");
|
|
58
|
+
return;
|
|
59
|
+
fi;
|
|
60
|
+
excluded := Union(excluded, [ "ExplicitHilbertSeries", "Triangulation" ]);
|
|
61
|
+
# iterate over properties in alphabetical order, to reduce
|
|
62
|
+
# fluctuations between Normaliz versions
|
|
63
|
+
for prop in NmzKnownConeProperties(cone) do
|
|
64
|
+
if prop in excluded then
|
|
65
|
+
continue;
|
|
66
|
+
fi;
|
|
67
|
+
val := NmzConeProperty(cone, prop);
|
|
68
|
+
Print(prop," = ");
|
|
69
|
+
if IsMatrix(val) then
|
|
70
|
+
Print("\n");
|
|
71
|
+
fi;
|
|
72
|
+
Display(val);
|
|
73
|
+
od;
|
|
74
|
+
end);
|
|
75
|
+
|
|
76
|
+
InstallGlobalFunction("NmzBasisChange",
|
|
77
|
+
function(cone)
|
|
78
|
+
local result;
|
|
79
|
+
result := NmzConeProperty( cone, "Sublattice" );
|
|
80
|
+
return rec(
|
|
81
|
+
Embedding := result[1],
|
|
82
|
+
Projection := result[2],
|
|
83
|
+
Annihilator := result[3],
|
|
84
|
+
);
|
|
85
|
+
end);
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
#
|
|
89
|
+
#
|
|
90
|
+
#
|
|
91
|
+
InstallGlobalFunction("NmzCone",
|
|
92
|
+
function(arg)
|
|
93
|
+
local func, opts_rec, opts_list, cone;
|
|
94
|
+
if Length(arg) = 1 then
|
|
95
|
+
if IsList(arg[1]) then
|
|
96
|
+
opts_list := arg[1];
|
|
97
|
+
elif IsRecord(arg[1]) then
|
|
98
|
+
opts_list := [];
|
|
99
|
+
for opts_rec in RecNames(arg[1]) do
|
|
100
|
+
Add(opts_list, opts_rec);
|
|
101
|
+
Add(opts_list, arg[1].(opts_rec));
|
|
102
|
+
od;
|
|
103
|
+
else
|
|
104
|
+
# TODO: better error message
|
|
105
|
+
Error("Unsupported input");
|
|
106
|
+
fi;
|
|
107
|
+
else
|
|
108
|
+
opts_list := arg;
|
|
109
|
+
fi;
|
|
110
|
+
|
|
111
|
+
cone := _NmzCone(opts_list);
|
|
112
|
+
return cone;
|
|
113
|
+
end);
|
|
114
|
+
|
|
115
|
+
# TODO: extend NmzCone to allow this syntax:
|
|
116
|
+
##cone := NmzCone(rec(integral_closure := M, grading := [ 0, 0, 1 ]));;
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
#
|
|
121
|
+
#
|
|
122
|
+
#
|
|
123
|
+
InstallGlobalFunction("NmzCompute",
|
|
124
|
+
function(arg)
|
|
125
|
+
local cone, propsToCompute;
|
|
126
|
+
if not Length(arg) in [1,2] then
|
|
127
|
+
Error("Wrong number of arguments, expected 1 or 2");
|
|
128
|
+
return fail;
|
|
129
|
+
fi;
|
|
130
|
+
cone := arg[1];
|
|
131
|
+
if not IsNormalizCone(cone) then
|
|
132
|
+
Error("First argument must be a Normaliz cone object");
|
|
133
|
+
return fail;
|
|
134
|
+
fi;
|
|
135
|
+
if Length(arg) = 1 then
|
|
136
|
+
propsToCompute := [];
|
|
137
|
+
if ValueOption("dual") = true then Add(propsToCompute, "DualMode"); fi;
|
|
138
|
+
if ValueOption("DualMode") = true then Add(propsToCompute, "DualMode"); fi;
|
|
139
|
+
if ValueOption("HilbertBasis") = true then Add(propsToCompute, "HilbertBasis"); fi;
|
|
140
|
+
# TODO: add more option names? or just support arbitrary ones, by using
|
|
141
|
+
# iterating over the (undocumented!) OptionsStack???
|
|
142
|
+
if Length(propsToCompute) = 0 then
|
|
143
|
+
propsToCompute := [ "DefaultMode" ];
|
|
144
|
+
fi;
|
|
145
|
+
else
|
|
146
|
+
if IsString(arg[2]) then
|
|
147
|
+
propsToCompute := [arg[2]];
|
|
148
|
+
else
|
|
149
|
+
propsToCompute := arg[2];
|
|
150
|
+
fi;
|
|
151
|
+
fi;
|
|
152
|
+
return _NmzCompute(cone, propsToCompute);
|
|
153
|
+
end);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Generate the manual using AutoDoc
|
|
3
|
+
#
|
|
4
|
+
if fail = LoadPackage("AutoDoc", ">= 2019.04.10") then
|
|
5
|
+
Error("AutoDoc 2019.04.10 or newer is required");
|
|
6
|
+
fi;
|
|
7
|
+
|
|
8
|
+
AutoDoc(rec(
|
|
9
|
+
extract_examples := true,
|
|
10
|
+
scaffold := rec( bib := "NormalizInterface-bib.xml" ),
|
|
11
|
+
autodoc := rec( files := [ "doc/intro.autodoc", "src/normaliz.cc" ] ),
|
|
12
|
+
));
|
|
13
|
+
QUIT;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
gap> START_TEST("InhomIneq.tst");
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# Test a Hilbert series with negative shift
|
|
5
|
+
#
|
|
6
|
+
gap> M := [
|
|
7
|
+
> [0, 2, 1],
|
|
8
|
+
> [0, -2, 3],
|
|
9
|
+
> [2, -2, 3]
|
|
10
|
+
> ];
|
|
11
|
+
[ [ 0, 2, 1 ], [ 0, -2, 3 ], [ 2, -2, 3 ] ]
|
|
12
|
+
gap> InhomIneq := NmzCone(["inhom_inequalities", M, "grading", [[1,0]] ]);
|
|
13
|
+
<a Normaliz cone>
|
|
14
|
+
gap> NmzHilbertSeries(InhomIneq);
|
|
15
|
+
[ 1+t^-1, [ [ 1, 1 ] ] ]
|
|
16
|
+
gap> NmzHilbertQuasiPolynomial(InhomIneq);
|
|
17
|
+
[ 2 ]
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
gap> STOP_TEST("InhomIneq.tst", 0);
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
gap> START_TEST("bugfix.tst");
|
|
2
|
+
|
|
3
|
+
#
|
|
4
|
+
# We used to incorrectly convert integer value "0" (zero) from type mpz_t
|
|
5
|
+
# to GAP integers, leading to bogus outputs in e.g. the following example.
|
|
6
|
+
# Fixed by adding a special case for zero to MpzToGAP.
|
|
7
|
+
#
|
|
8
|
+
gap> C := NmzCone(["integral_closure",[[1,2],[3,1]],"grading",[[1,1]]]);
|
|
9
|
+
<a Normaliz cone>
|
|
10
|
+
gap> _NmzConeProperty(C,"HilbertSeries");
|
|
11
|
+
[ [ 1, -1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1 ], [ 1, 12 ], 0 ]
|
|
12
|
+
gap> NmzHilbertSeries(C);
|
|
13
|
+
[ t^11+t^8+t^6+t^3+t^2-t+1, [ [ 1, 1 ], [ 12, 1 ] ] ]
|
|
14
|
+
|
|
15
|
+
#
|
|
16
|
+
# The following returns a bad result with Normaliz 3.4.0.
|
|
17
|
+
# See https://github.com/gap-packages/NormalizInterface/issues/58
|
|
18
|
+
#
|
|
19
|
+
gap> C := NmzCone( "integral_closure", [ [0,0,1], [0,2,1], [1,0,1], [1,1,1] ] );;
|
|
20
|
+
gap> NmzDeg1Elements(C);
|
|
21
|
+
[ [ 0, 0, 1 ], [ 0, 1, 1 ], [ 0, 2, 1 ], [ 1, 0, 1 ], [ 1, 1, 1 ] ]
|
|
22
|
+
|
|
23
|
+
#
|
|
24
|
+
# The following produces a segfault with Normaliz 3.4.0 and 3.5.1, but
|
|
25
|
+
# seems to work fine with 3.5.4 and newer.
|
|
26
|
+
# See https://github.com/gap-packages/NormalizInterface/issues/61
|
|
27
|
+
#
|
|
28
|
+
gap> L := [ [ -1, -1, 0, 0, 0, 0 ], [ -1, 0, 0, 0, 0, 0 ], [ 0, 0, -1, -1, -1, 0 ],
|
|
29
|
+
> [ 0, 0, -1, 0, 0, 0 ], [ 0, 0, 0, -1, 0, 0 ], [ 1, 1, 0, 0, 0, 0 ],
|
|
30
|
+
> [ 1, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 1, 1, 0 ], [ 0, 0, 1, 0, 0, 0 ],
|
|
31
|
+
> [ 0, 0, 0, 1, 0, 0 ] ];;
|
|
32
|
+
gap> C := NmzCone( "inhom_inequalities", L );;
|
|
33
|
+
gap> NmzModuleGenerators(C);
|
|
34
|
+
[ [ 0, 0, 0, 0, 0, 1 ] ]
|
|
35
|
+
|
|
36
|
+
#
|
|
37
|
+
gap> STOP_TEST("bugfix.tst", 0);
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
gap> START_TEST("conversion.tst");
|
|
2
|
+
|
|
3
|
+
## Check the multiplicity for some powers of 2:
|
|
4
|
+
gap> n := 28;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
5
|
+
true
|
|
6
|
+
gap> n := 31;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
7
|
+
true
|
|
8
|
+
gap> n := 32;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
9
|
+
true
|
|
10
|
+
gap> n := 33;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
11
|
+
true
|
|
12
|
+
gap> n := 60;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
13
|
+
true
|
|
14
|
+
gap> n := 63;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
15
|
+
true
|
|
16
|
+
gap> n := 64;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
17
|
+
true
|
|
18
|
+
gap> n := 65;; 2^n = NmzMultiplicity( NmzCone("polytope", 2 * IdentityMat(n+1)) );
|
|
19
|
+
true
|
|
20
|
+
|
|
21
|
+
## Check conversion for a matrix which entries contain
|
|
22
|
+
## e*2^n + d, where e is 1 or -1, d is -1, 0, 1, and n is, say, 28, 31,32, 60, 63, 64
|
|
23
|
+
gap> start := 25;;
|
|
24
|
+
gap> n := 40;; ## should be divisible by 4
|
|
25
|
+
gap> M := NullMat(n,2*n);;
|
|
26
|
+
gap>
|
|
27
|
+
gap> for i in [1 .. n] do
|
|
28
|
+
> M[i][n-i+1] := 1; # antidiagonal element
|
|
29
|
+
> entry := 2^(start+i) - n/4;
|
|
30
|
+
> for j in [n+1 .. 2*n] do
|
|
31
|
+
> M[i][j] := entry;
|
|
32
|
+
> if j mod 2 <> 0 then
|
|
33
|
+
> entry := -entry;
|
|
34
|
+
> else
|
|
35
|
+
> entry := -entry + 1;
|
|
36
|
+
> fi;
|
|
37
|
+
> od;
|
|
38
|
+
> od;
|
|
39
|
+
gap>
|
|
40
|
+
gap> C := NmzCone("cone", M);
|
|
41
|
+
<a Normaliz cone>
|
|
42
|
+
gap> NmzMultiplicity(C);
|
|
43
|
+
1
|
|
44
|
+
gap> rays := NmzExtremeRays(C);;
|
|
45
|
+
|
|
46
|
+
#
|
|
47
|
+
gap> i := 1;;
|
|
48
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
49
|
+
26 true
|
|
50
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
51
|
+
27 true
|
|
52
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
53
|
+
28 true
|
|
54
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
55
|
+
29 true
|
|
56
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
57
|
+
30 true
|
|
58
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
59
|
+
31 true
|
|
60
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
61
|
+
32 true
|
|
62
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
63
|
+
33 true
|
|
64
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
65
|
+
34 true
|
|
66
|
+
|
|
67
|
+
#
|
|
68
|
+
gap> i := 58 - start;;
|
|
69
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
70
|
+
58 true
|
|
71
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
72
|
+
59 true
|
|
73
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
74
|
+
60 true
|
|
75
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
76
|
+
61 true
|
|
77
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
78
|
+
62 true
|
|
79
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
80
|
+
63 true
|
|
81
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
82
|
+
64 true
|
|
83
|
+
gap> Print(i+start," ", M[i] = rays[i], "\n"); i := i + 1;;
|
|
84
|
+
65 true
|
|
85
|
+
|
|
86
|
+
#
|
|
87
|
+
gap> STOP_TEST("conversion.tst", 0);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#
|
|
2
|
+
gap> START_TEST("cube-incidence.tst");
|
|
3
|
+
|
|
4
|
+
# enter cube inequalities (TODO: make this more convenient)
|
|
5
|
+
gap> d:=5;;
|
|
6
|
+
gap> cube:=function(d)
|
|
7
|
+
> local M;
|
|
8
|
+
> M:=NullMat(2*d,d+1);;
|
|
9
|
+
> M{[1..d]}{[1..d]}:=IdentityMat(d);;
|
|
10
|
+
> M{[1..d]+d}{[1..d]}:=-IdentityMat(d);;
|
|
11
|
+
> M{[1..d]+d}[1+d] := ListWithIdenticalEntries(d,1);;
|
|
12
|
+
> return NmzCone(["inhom_inequalities", M]);
|
|
13
|
+
> end;;
|
|
14
|
+
gap> printIncidence:=function(cone)
|
|
15
|
+
> local tmp;
|
|
16
|
+
> tmp := NmzIncidence(cone);
|
|
17
|
+
> tmp := List(tmp,r->List(r,function(x) if x then return '1'; fi; return '0'; end));
|
|
18
|
+
> Display(JoinStringsWithSeparator(tmp, "\n"));
|
|
19
|
+
> end;;
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
gap> cone := cube(5);
|
|
23
|
+
<a Normaliz cone>
|
|
24
|
+
gap> Length(NmzVerticesOfPolyhedron(cone)) = 32;
|
|
25
|
+
true
|
|
26
|
+
gap> NmzVolume(cone);
|
|
27
|
+
120
|
|
28
|
+
gap> printIncidence(cone);
|
|
29
|
+
00000000000000001111111111111111
|
|
30
|
+
00000000111111110000000011111111
|
|
31
|
+
00001111000011110000111100001111
|
|
32
|
+
00110011001100110011001100110011
|
|
33
|
+
01010101010101010101010101010101
|
|
34
|
+
10101010101010101010101010101010
|
|
35
|
+
11001100110011001100110011001100
|
|
36
|
+
11110000111100001111000011110000
|
|
37
|
+
11111111000000001111111100000000
|
|
38
|
+
11111111111111110000000000000000
|
|
39
|
+
|
|
40
|
+
#
|
|
41
|
+
gap> cone := cube(6);
|
|
42
|
+
<a Normaliz cone>
|
|
43
|
+
gap> Length(NmzVerticesOfPolyhedron(cone)) = 64;
|
|
44
|
+
true
|
|
45
|
+
gap> NmzVolume(cone);
|
|
46
|
+
720
|
|
47
|
+
gap> printIncidence(cone);
|
|
48
|
+
0000000000000000000000000000000011111111111111111111111111111111
|
|
49
|
+
0000000000000000111111111111111100000000000000001111111111111111
|
|
50
|
+
0000000011111111000000001111111100000000111111110000000011111111
|
|
51
|
+
0000111100001111000011110000111100001111000011110000111100001111
|
|
52
|
+
0011001100110011001100110011001100110011001100110011001100110011
|
|
53
|
+
0101010101010101010101010101010101010101010101010101010101010101
|
|
54
|
+
1010101010101010101010101010101010101010101010101010101010101010
|
|
55
|
+
1100110011001100110011001100110011001100110011001100110011001100
|
|
56
|
+
1111000011110000111100001111000011110000111100001111000011110000
|
|
57
|
+
1111111100000000111111110000000011111111000000001111111100000000
|
|
58
|
+
1111111111111111000000000000000011111111111111110000000000000000
|
|
59
|
+
1111111111111111111111111111111100000000000000000000000000000000
|
|
60
|
+
|
|
61
|
+
#
|
|
62
|
+
gap> STOP_TEST("cube-incidence.tst", 0);
|