From: Michael Orlitzky Date: Tue, 3 Mar 2026 01:50:17 +0000 (-0500) Subject: mjo/cone/decomposition.py: use check=False at end of nonlineal_part() X-Git-Url: https://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=a13a2bf55234bcd2e0a2735da33dcee6a598bbed;p=sage.d.git mjo/cone/decomposition.py: use check=False at end of nonlineal_part() I've sketched an argument that the generating sets must be minimal. --- diff --git a/mjo/cone/decomposition.py b/mjo/cone/decomposition.py index ffc991f..ff80302 100644 --- a/mjo/cone/decomposition.py +++ b/mjo/cone/decomposition.py @@ -264,10 +264,15 @@ def nonlineal_part(K, orthogonal=False): lat = K.lattice() if not orthogonal: - # Open question: is this generating set guaranteed to be - # minimal? + # This generating set is guaranteed to be minimal. If it's + # not, then using the orthogonal decomposition of the + # generators into g = g1 + g2, we find that one of the g2 + # components is redundant for the projected cone. But this + # would contradict the minimality of those generators. pm_lines = [c*l for c in [-1,1] for l in K.lines()] - return Cone([r for r in K if not r in pm_lines], lattice=lat) + return Cone([r for r in K if not r in pm_lines], + lattice=lat, + check=False) # We need to compute inner products and doing it in the ambient # vector space (rather than in a more picky lattice) is the @@ -286,6 +291,7 @@ def nonlineal_part(K, orthogonal=False): if not (v := V(r)) in linspace ] - # Open question: is THIS generating set minimal? The orthogonal - # projections are, but what about ours? - return (Cone(P_rays, lattice=lat)) + # This should be minimal. The orthogonal-projected generators are + # minimal, and ours are the orthogonal projections of a scaled + # set. By linearity it should work out. + return Cone(P_rays, lattice=lat, check=False)