From 3e20695056a93855338fd1dc86b8d24d07be2230 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 1 Nov 2025 12:28:56 +0100 Subject: [PATCH 1/4] Test without _NmzPrintSomeConeProperties It just is not good for tests that should work across multiple Normaliz versions. --- tst/descent.tst | 55 ++++++++++++---------- tst/dual.tst | 68 +++++++++++++++------------ tst/project.tst | 120 ++++++++++++++++++++++++++--------------------- tst/rational.tst | 79 ++++++++++++++++++------------- tst/rees.tst | 80 +++++++++++++++++-------------- tst/rp2poly.tst | 79 ++++++++++++++++++------------- tst/rproj2.tst | 77 +++++++++++++++++------------- 7 files changed, 316 insertions(+), 242 deletions(-) diff --git a/tst/descent.tst b/tst/descent.tst index e504919..dc690e5 100644 --- a/tst/descent.tst +++ b/tst/descent.tst @@ -137,31 +137,36 @@ gap> Display(NmzSublattice(cone)); [ [ 1, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ] ], 1 ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -EmbeddingDim = 7 -Grading = [ 1, 1, 1, 1, 1, 1, -2 ] -GradingDenom = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsPointed = true -IsTriangulationNested = false -IsTriangulationPartial = true -MaximalSubspace = [ ] -Multiplicity = 72 -Rank = 7 -TriangulationDetSum = 2 -TriangulationSize = 1 +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "EmbeddingDim"); +7 +gap> NmzConeProperty(cone, "Grading"); +[ 1, 1, 1, 1, 1, 1, -2 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +true +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +72 +gap> NmzConeProperty(cone, "Rank"); +7 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +2 +gap> NmzConeProperty(cone, "TriangulationSize"); +1 # gap> NmzVolume(cone); diff --git a/tst/dual.tst b/tst/dual.tst index 353800a..4ed56ac 100644 --- a/tst/dual.tst +++ b/tst/dual.tst @@ -496,38 +496,46 @@ gap> Display(NmzSublattice(cone)); [ [ 1, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 1 ] ], 1 ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -ClassGroup = [ 17 ] -EhrhartQuasiPolynomial = [ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] -EmbeddingDim = 7 -Grading = [ 1, 1, 1, 1, 1, 1, -2 ] -GradingDenom = 1 -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "ClassGroup"); +[ 17 ] +gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); +[ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] +gap> NmzConeProperty(cone, "EmbeddingDim"); +7 +gap> NmzConeProperty(cone, "Grading"); +[ 1, 1, 1, 1, 1, 1, -2 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertSeries = [ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsPointed = true -IsTriangulationNested = false -IsTriangulationPartial = false -MaximalSubspace = [ ] -Multiplicity = 72 -Rank = 7 -TriangulationDetSum = 72 -TriangulationSize = 69 +gap> NmzConeProperty(cone, "HilbertSeries"); +[ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +false +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +72 +gap> NmzConeProperty(cone, "Rank"); +7 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +72 +gap> NmzConeProperty(cone, "TriangulationSize"); +69 # gap> STOP_TEST("dual.tst", 0); diff --git a/tst/project.tst b/tst/project.tst index 28c0574..f9de7ca 100644 --- a/tst/project.tst +++ b/tst/project.tst @@ -41,33 +41,38 @@ gap> Display(NmzDeg1Elements(cone)); gap> Display(NmzSublattice(cone)); [ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ] ], [ [ 1, 0 ], [ 0, 1 ], [ 0, 0 ], [ 0, 0 ] ], 1 ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -EmbeddingDim = 4 -Grading = [ 0, 1, 0, 0 ] -GradingDenom = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = true -IsInhomogeneous = false -IsPointed = false -IsTriangulationNested = false -IsTriangulationPartial = true -MaximalSubspace = +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "EmbeddingDim"); +4 +gap> NmzConeProperty(cone, "Grading"); +[ 0, 1, 0, 0 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +true +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsPointed"); +false +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +true +gap> NmzConeProperty(cone, "MaximalSubspace"); [ [ 1, 0, 0, 0 ] ] -Multiplicity = 1 -ProjectCone = -Rank = 2 -TriangulationDetSum = 0 -TriangulationSize = 0 +gap> NmzConeProperty(cone, "Multiplicity"); +1 +gap> NmzConeProperty(cone, "ProjectCone"); + +gap> NmzConeProperty(cone, "Rank"); +2 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +0 +gap> NmzConeProperty(cone, "TriangulationSize"); +0 # check what was computed for the projected cone gap> Perform(NmzKnownConeProperties(proj), Display); @@ -102,35 +107,42 @@ gap> Display(NmzDeg1Elements(proj)); [ [ 0, 1, 0 ] ] gap> Display(NmzSublattice(proj)); [ [ [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ 1, 0 ], [ 0, 1 ], [ 0, 0 ] ], 1 ] -gap> _NmzPrintSomeConeProperties(proj, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -EmbeddingDim = 3 -Grading = [ 0, 1, 0 ] -GradingDenom = 1 -InternalIndex = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = true -IsInhomogeneous = false -IsIntegrallyClosed = true -IsPointed = false -IsTriangulationNested = false -IsTriangulationPartial = true -MaximalSubspace = +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "EmbeddingDim"); +3 +gap> NmzConeProperty(cone, "Grading"); +[ 0, 1, 0 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "InternalIndex"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +true +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsIntegrallyClosed"); +true +gap> NmzConeProperty(cone, "IsPointed"); +false +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +true +gap> NmzConeProperty(cone, "MaximalSubspace"); [ [ 1, 0, 0 ] ] -Multiplicity = 1 -Rank = 2 -TriangulationDetSum = 0 -TriangulationSize = 0 -UnitGroupIndex = 1 +gap> NmzConeProperty(cone, "Multiplicity"); +1 +gap> NmzConeProperty(cone, "Rank"); +2 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +0 +gap> NmzConeProperty(cone, "TriangulationSize"); +0 +gap> NmzConeProperty(cone, "UnitGroupIndex"); +1 # gap> STOP_TEST("project.tst", 0); diff --git a/tst/rational.tst b/tst/rational.tst index 5133dcb..726a763 100644 --- a/tst/rational.tst +++ b/tst/rational.tst @@ -73,51 +73,64 @@ gap> Display(NmzOriginalMonoidGenerators(cone)); [ [ 1, 1, 2 ], [ -1, -1, 3 ], [ 1, -2, 4 ] ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -ClassGroup = [ 0, 3, 15 ] -EhrhartQuasiPolynomial = [ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "ClassGroup"); +[ 0, 3, 15 ] +gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); +[ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], [ 39, 22, 15 ], [ 32, 28, 15 ], [ -5, 22, 15 ], [ 12, 28, 15 ], [ 23, 22, 15 ], [ 16, 28, 15 ], [ 27, 22, 15 ], [ -4, 28, 15 ], [ 7, 22, 15 ], 48 ] -EmbeddingDim = 3 -Grading = [ 0, 0, 1 ] -GradingDenom = 1 -HilbertQuasiPolynomial = [ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, +gap> NmzConeProperty(cone, "EmbeddingDim"); +3 +gap> NmzConeProperty(cone, "Grading"); +[ 0, 0, 1 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); +[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, 5/16*t^2+7/12*t-5/12, 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, 5/16*t^2+11/24*t-5/48, 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, 5/16*t^2+7/12*t+1/3, 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, 5/16*t^2+11/24*t+7/48 ] -HilbertQuasiPolynomial = [ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); +[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, 5/16*t^2+7/12*t-5/12, 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, 5/16*t^2+11/24*t-5/48, 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, 5/16*t^2+7/12*t+1/3, 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, 5/16*t^2+11/24*t+7/48 ] -HilbertSeries = [ 2*t^12+t^11+t^10+t^9+t^8+2*t^7+2*t^6-t^5+2*t^4+3*t^3+1, +gap> NmzConeProperty(cone, "HilbertSeries"); +[ 2*t^12+t^11+t^10+t^9+t^8+2*t^7+2*t^6-t^5+2*t^4+3*t^3+1, [ [ 1, 1 ], [ 2, 1 ], [ 12, 1 ] ] ] -InternalIndex = 15 -IsDeg1ExtremeRays = false -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsIntegrallyClosed = false -IsPointed = true -IsTriangulationNested = false -IsTriangulationPartial = false -MaximalSubspace = [ ] -Multiplicity = 5/8 -Rank = 3 -TriangulationDetSum = 15 -TriangulationSize = 1 -UnitGroupIndex = 1 +gap> NmzConeProperty(cone, "InternalIndex"); +15 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +false +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsIntegrallyClosed"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +false +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +5/8 +gap> NmzConeProperty(cone, "Rank"); +3 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +15 +gap> NmzConeProperty(cone, "TriangulationSize"); +1 +gap> NmzConeProperty(cone, "UnitGroupIndex"); +1 gap> Display(NmzConeDecomposition(cone)); [ [ rec( Excluded := [ false, false, false ], diff --git a/tst/rees.tst b/tst/rees.tst index 216811e..e29b7c9 100644 --- a/tst/rees.tst +++ b/tst/rees.tst @@ -503,42 +503,54 @@ gap> Display(NmzOriginalMonoidGenerators(cone)); [ 0, 1, 0, 0, 1, 1, 1 ], [ 0, 0, 1, 1, 1, 0, 1 ], [ 0, 0, 1, 1, 0, 1, 1 ] ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -ClassGroup = [ 17 ] -EhrhartQuasiPolynomial = [ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] -EmbeddingDim = 7 -Grading = [ 1, 1, 1, 1, 1, 1, -2 ] -GradingDenom = 1 -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "ClassGroup"); +[ 17 ] +gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); +[ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] +gap> NmzConeProperty(cone, "EmbeddingDim"); +7 +gap> NmzConeProperty(cone, "Grading"); +[ 1, 1, 1, 1, 1, 1, -2 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertSeries = [ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] -InternalIndex = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsIntegrallyClosed = false -IsPointed = true -IsReesPrimary = false -IsTriangulationNested = false -IsTriangulationPartial = false -MaximalSubspace = [ ] -Multiplicity = 72 -Rank = 7 -TriangulationDetSum = 72 -TriangulationSize = 69 -UnitGroupIndex = 1 +gap> NmzConeProperty(cone, "HilbertSeries"); +[ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] +gap> NmzConeProperty(cone, "InternalIndex"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsIntegrallyClosed"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsReesPrimary"); +false +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +false +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +72 +gap> NmzConeProperty(cone, "Rank"); +7 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +72 +gap> NmzConeProperty(cone, "TriangulationSize"); +69 +gap> NmzConeProperty(cone, "UnitGroupIndex"); +1 # gap> STOP_TEST("rees.tst", 0); diff --git a/tst/rp2poly.tst b/tst/rp2poly.tst index 65c5bef..5e147e0 100644 --- a/tst/rp2poly.tst +++ b/tst/rp2poly.tst @@ -215,39 +215,52 @@ gap> Display(NmzOriginalMonoidGenerators(cone)); [ 0, 1, 0, 0, 1, 1 ], [ 0, 0, 1, 1, 1, 0 ], [ 0, 0, 1, 1, 0, 1 ] ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -ClassGroup = [ 16 ] -EhrhartQuasiPolynomial = [ [ 120, 314, 375, 265, 105, 21 ], 120 ] -EmbeddingDim = 6 -Grading = [ 1/3, 1/3, 1/3, 1/3, 1/3, 1/3 ] -GradingDenom = 3 -HilbertQuasiPolynomial = [ 7/40*t^5+7/8*t^4+53/24*t^3+25/8*t^2+157/60*t+1 ] -HilbertQuasiPolynomial = [ 7/40*t^5+7/8*t^4+53/24*t^3+25/8*t^2+157/60*t+1 ] -HilbertSeries = [ t^4+4*t^3+11*t^2+4*t+1, [ [ 1, 6 ] ] ] -InternalIndex = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsIntegrallyClosed = false -IsPointed = true -IsTriangulationNested = false -IsTriangulationPartial = false -MaximalSubspace = [ ] -Multiplicity = 21 -Rank = 6 -TriangulationDetSum = 21 -TriangulationSize = 18 -UnitGroupIndex = 1 +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "ClassGroup"); +[ 16 ] +gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); +[ [ 120, 314, 375, 265, 105, 21 ], 120 ] +gap> NmzConeProperty(cone, "EmbeddingDim"); +6 +gap> NmzConeProperty(cone, "Grading"); +[ 1/3, 1/3, 1/3, 1/3, 1/3, 1/3 ] +gap> NmzConeProperty(cone, "GradingDenom"); +3 +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); +[ 7/40*t^5+7/8*t^4+53/24*t^3+25/8*t^2+157/60*t+1 ] +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); +[ 7/40*t^5+7/8*t^4+53/24*t^3+25/8*t^2+157/60*t+1 ] +gap> NmzConeProperty(cone, "HilbertSeries"); +[ t^4+4*t^3+11*t^2+4*t+1, [ [ 1, 6 ] ] ] +gap> NmzConeProperty(cone, "InternalIndex"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsIntegrallyClosed"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +false +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +21 +gap> NmzConeProperty(cone, "Rank"); +6 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +21 +gap> NmzConeProperty(cone, "TriangulationSize"); +18 +gap> NmzConeProperty(cone, "UnitGroupIndex"); +1 gap> Display(NmzConeDecomposition(cone)); [ [ rec( Excluded := [ false, false, false, false, false, false ], diff --git a/tst/rproj2.tst b/tst/rproj2.tst index 37efdbc..601fe6e 100644 --- a/tst/rproj2.tst +++ b/tst/rproj2.tst @@ -508,41 +508,52 @@ gap> Display(NmzOriginalMonoidGenerators(cone)); [ 0, 1, 0, 0, 1, 1, 1 ], [ 0, 0, 1, 1, 1, 0, 1 ], [ 0, 0, 1, 1, 0, 1, 1 ] ] -gap> _NmzPrintSomeConeProperties(cone, [ -> "Generators", -> "ExtremeRays", -> "SupportHyperplanes", -> "HilbertBasis", -> "Deg1Elements", -> "Sublattice", -> "NumberLatticePoints", -> "OriginalMonoidGenerators", -> ]); -BasicTriangulation = fail -ClassGroup = [ 17 ] -EhrhartQuasiPolynomial = [ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] -EmbeddingDim = 7 -Grading = [ 1, 1, 1, 1, 1, 1, -2 ] -GradingDenom = 1 -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "BasicTriangulation"); +fail +gap> NmzConeProperty(cone, "ClassGroup"); +[ 17 ] +gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); +[ [ 60, 194, 284, 245, 130, 41, 6 ], 60 ] +gap> NmzConeProperty(cone, "EmbeddingDim"); +7 +gap> NmzConeProperty(cone, "Grading"); +[ 1, 1, 1, 1, 1, 1, -2 ] +gap> NmzConeProperty(cone, "GradingDenom"); +1 +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertQuasiPolynomial = +gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); [ 1/10*t^6+41/60*t^5+13/6*t^4+49/12*t^3+71/15*t^2+97/30*t+1 ] -HilbertSeries = [ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] -InternalIndex = 1 -IsDeg1ExtremeRays = true -IsDeg1HilbertBasis = false -IsInhomogeneous = false -IsIntegrallyClosed = false -IsPointed = true -IsTriangulationNested = false -IsTriangulationPartial = false -MaximalSubspace = [ ] -Multiplicity = 72 -Rank = 7 -TriangulationDetSum = 72 -TriangulationSize = 69 -UnitGroupIndex = 1 +gap> NmzConeProperty(cone, "HilbertSeries"); +[ 6*t^4+25*t^3+31*t^2+9*t+1, [ [ 1, 7 ] ] ] +gap> NmzConeProperty(cone, "InternalIndex"); +1 +gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); +true +gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); +false +gap> NmzConeProperty(cone, "IsInhomogeneous"); +false +gap> NmzConeProperty(cone, "IsIntegrallyClosed"); +false +gap> NmzConeProperty(cone, "IsPointed"); +true +gap> NmzConeProperty(cone, "IsTriangulationNested"); +false +gap> NmzConeProperty(cone, "IsTriangulationPartial"); +false +gap> NmzConeProperty(cone, "MaximalSubspace"); +[ ] +gap> NmzConeProperty(cone, "Multiplicity"); +72 +gap> NmzConeProperty(cone, "Rank"); +7 +gap> NmzConeProperty(cone, "TriangulationDetSum"); +72 +gap> NmzConeProperty(cone, "TriangulationSize"); +69 +gap> NmzConeProperty(cone, "UnitGroupIndex"); +1 # gap> STOP_TEST("rproj2.tst", 0); From 7da4d48be525f2bb79f1e452b4616ce4c35f8509 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 1 Nov 2025 13:55:02 +0100 Subject: [PATCH 2/4] tweak --- tst/project.tst | 14 +++++++------- tst/rational.tst | 25 +++++++++++-------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/tst/project.tst b/tst/project.tst index f9de7ca..44ac5a6 100644 --- a/tst/project.tst +++ b/tst/project.tst @@ -62,11 +62,11 @@ false gap> NmzConeProperty(cone, "IsTriangulationPartial"); true gap> NmzConeProperty(cone, "MaximalSubspace"); -[ [ 1, 0, 0, 0 ] ] +[ [ 1, 0, 0, 0 ] ] gap> NmzConeProperty(cone, "Multiplicity"); 1 gap> NmzConeProperty(cone, "ProjectCone"); - + gap> NmzConeProperty(cone, "Rank"); 2 gap> NmzConeProperty(cone, "TriangulationDetSum"); @@ -98,13 +98,13 @@ gap> Display(NmzTriangulation(proj)); mult := 0, vol := 1 ) ], [ [ 0, 1, 0 ] ] ] gap> Display(NmzExtremeRays(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzSupportHyperplanes(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzHilbertBasis(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzDeg1Elements(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzSublattice(proj)); [ [ [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ 1, 0 ], [ 0, 1 ], [ 0, 0 ] ], 1 ] gap> NmzConeProperty(cone, "BasicTriangulation"); @@ -132,7 +132,7 @@ false gap> NmzConeProperty(cone, "IsTriangulationPartial"); true gap> NmzConeProperty(cone, "MaximalSubspace"); -[ [ 1, 0, 0 ] ] +[ [ 1, 0, 0 ] ] gap> NmzConeProperty(cone, "Multiplicity"); 1 gap> NmzConeProperty(cone, "Rank"); diff --git a/tst/rational.tst b/tst/rational.tst index 726a763..aad9bba 100644 --- a/tst/rational.tst +++ b/tst/rational.tst @@ -78,10 +78,9 @@ fail gap> NmzConeProperty(cone, "ClassGroup"); [ 0, 3, 15 ] gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); -[ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], - [ 39, 22, 15 ], [ 32, 28, 15 ], [ -5, 22, 15 ], [ 12, 28, 15 ], - [ 23, 22, 15 ], [ 16, 28, 15 ], [ 27, 22, 15 ], [ -4, 28, 15 ], - [ 7, 22, 15 ], 48 ] +[ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], [ 39, 22, 15 ], + [ 32, 28, 15 ], [ -5, 22, 15 ], [ 12, 28, 15 ], [ 23, 22, 15 ], + [ 16, 28, 15 ], [ 27, 22, 15 ], [ -4, 28, 15 ], [ 7, 22, 15 ], 48 ] gap> NmzConeProperty(cone, "EmbeddingDim"); 3 gap> NmzConeProperty(cone, "Grading"); @@ -89,17 +88,15 @@ gap> NmzConeProperty(cone, "Grading"); gap> NmzConeProperty(cone, "GradingDenom"); 1 gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); -[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, - 5/16*t^2+7/12*t-5/12, 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, - 5/16*t^2+11/24*t-5/48, 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, - 5/16*t^2+7/12*t+1/3, 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, - 5/16*t^2+11/24*t+7/48 ] +[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, 5/16*t^2+7/12*t-5/12, + 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, 5/16*t^2+11/24*t-5/48, + 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, 5/16*t^2+7/12*t+1/3, + 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, 5/16*t^2+11/24*t+7/48 ] gap> NmzConeProperty(cone, "HilbertQuasiPolynomial"); -[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, - 5/16*t^2+7/12*t-5/12, 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, - 5/16*t^2+11/24*t-5/48, 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, - 5/16*t^2+7/12*t+1/3, 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, - 5/16*t^2+11/24*t+7/48 ] +[ 5/16*t^2+7/12*t+1, 5/16*t^2+11/24*t+11/48, 5/16*t^2+7/12*t-5/12, + 5/16*t^2+11/24*t+13/16, 5/16*t^2+7/12*t+2/3, 5/16*t^2+11/24*t-5/48, + 5/16*t^2+7/12*t+1/4, 5/16*t^2+11/24*t+23/48, 5/16*t^2+7/12*t+1/3, + 5/16*t^2+11/24*t+9/16, 5/16*t^2+7/12*t-1/12, 5/16*t^2+11/24*t+7/48 ] gap> NmzConeProperty(cone, "HilbertSeries"); [ 2*t^12+t^11+t^10+t^9+t^8+2*t^7+2*t^6-t^5+2*t^4+3*t^3+1, [ [ 1, 1 ], [ 2, 1 ], [ 12, 1 ] ] ] From f257c28b2ff86cf30f70ad79891af3ec734724a3 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sat, 1 Nov 2025 13:58:22 +0100 Subject: [PATCH 3/4] more --- tst/project.tst | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/tst/project.tst b/tst/project.tst index 44ac5a6..5153386 100644 --- a/tst/project.tst +++ b/tst/project.tst @@ -12,17 +12,6 @@ gap> proj:=NmzProjectCone(cone); # check what was computed for the input cone gap> tmp := NmzKnownConeProperties(cone);; gap> RemoveSet(tmp, "NumberLatticePoints"); -gap> Perform(tmp, Display); -EmbeddingDim -ExtremeRays -Generators -IsInhomogeneous -IsPointed -MaximalSubspace -ProjectCone -Rank -Sublattice -SupportHyperplanes gap> Display(NmzTriangulation(cone)); [ [ rec( Excluded := [ ], @@ -98,13 +87,13 @@ gap> Display(NmzTriangulation(proj)); mult := 0, vol := 1 ) ], [ [ 0, 1, 0 ] ] ] gap> Display(NmzExtremeRays(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzSupportHyperplanes(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzHilbertBasis(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzDeg1Elements(proj)); -[ [ 0, 1, 0 ] ] +[ [ 0, 1, 0 ] ] gap> Display(NmzSublattice(proj)); [ [ [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ 1, 0 ], [ 0, 1 ], [ 0, 0 ] ], 1 ] gap> NmzConeProperty(cone, "BasicTriangulation"); From 37dc9c01f9ce416aecde3f2ccde30bb5bf301db2 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 11 Mar 2026 13:09:33 +0100 Subject: [PATCH 4/4] more --- tst/project.tst | 12 +++--------- tst/rational.tst | 4 ++-- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/tst/project.tst b/tst/project.tst index 5153386..c443b03 100644 --- a/tst/project.tst +++ b/tst/project.tst @@ -99,21 +99,17 @@ gap> Display(NmzSublattice(proj)); gap> NmzConeProperty(cone, "BasicTriangulation"); fail gap> NmzConeProperty(cone, "EmbeddingDim"); -3 +4 gap> NmzConeProperty(cone, "Grading"); -[ 0, 1, 0 ] +[ 0, 1, 0, 0 ] gap> NmzConeProperty(cone, "GradingDenom"); 1 -gap> NmzConeProperty(cone, "InternalIndex"); -1 gap> NmzConeProperty(cone, "IsDeg1ExtremeRays"); true gap> NmzConeProperty(cone, "IsDeg1HilbertBasis"); true gap> NmzConeProperty(cone, "IsInhomogeneous"); false -gap> NmzConeProperty(cone, "IsIntegrallyClosed"); -true gap> NmzConeProperty(cone, "IsPointed"); false gap> NmzConeProperty(cone, "IsTriangulationNested"); @@ -121,7 +117,7 @@ false gap> NmzConeProperty(cone, "IsTriangulationPartial"); true gap> NmzConeProperty(cone, "MaximalSubspace"); -[ [ 1, 0, 0 ] ] +[ [ 1, 0, 0, 0 ] ] gap> NmzConeProperty(cone, "Multiplicity"); 1 gap> NmzConeProperty(cone, "Rank"); @@ -130,8 +126,6 @@ gap> NmzConeProperty(cone, "TriangulationDetSum"); 0 gap> NmzConeProperty(cone, "TriangulationSize"); 0 -gap> NmzConeProperty(cone, "UnitGroupIndex"); -1 # gap> STOP_TEST("project.tst", 0); diff --git a/tst/rational.tst b/tst/rational.tst index aad9bba..ae402bb 100644 --- a/tst/rational.tst +++ b/tst/rational.tst @@ -78,9 +78,9 @@ fail gap> NmzConeProperty(cone, "ClassGroup"); [ 0, 3, 15 ] gap> NmzConeProperty(cone, "EhrhartQuasiPolynomial"); -[ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], [ 39, 22, 15 ], +[ [ 48, 28, 15 ], [ 11, 22, 15 ], [ -20, 28, 15 ], [ 39, 22, 15 ], [ 32, 28, 15 ], [ -5, 22, 15 ], [ 12, 28, 15 ], [ 23, 22, 15 ], - [ 16, 28, 15 ], [ 27, 22, 15 ], [ -4, 28, 15 ], [ 7, 22, 15 ], 48 ] + [ 16, 28, 15 ], [ 27, 22, 15 ], [ -4, 28, 15 ], [ 7, 22, 15 ], 48 ] gap> NmzConeProperty(cone, "EmbeddingDim"); 3 gap> NmzConeProperty(cone, "Grading");